c# - 为什么我的 ENUM 值显示为 0 而不是显示文本类型的默认值
问题描述
我有点困惑,并试图了解错误在哪里。我想在用户提交票证时为票证分配默认值,它应该默认Open
显示在索引页面中,Open
但我在索引页面中得到 0。
这是我的价值ENUM
public enum TicketStatus
{
Otvoren = 1,
NaCekanju = 2,
Zatvoren = 3
}
我为我的模型属性分配了默认值
public TicketStatus Status { get; set; } = TicketStatus.Otvoren;
数据表渲染部分
function loadDataTable() {
dataTable = $('#tblData').DataTable({
"ajax": {
"url": "/Manager/Ticket/GetAll"
},
"columns": [
{ "data": "description", "width": "15%" },
{ "data": "dateAndTime", "width": "15%" },
{ "data": "ticketType.name", "width": "15%" },
//{ "data": "user.name", "width": "15%" },
//{ "data": "client.name", "width": "15%" },
{ "data": "status", "width": "15%" },
{ "data": "answered", "width": "15%" },
{
"data": "id",
"render": function (data) {
return `
<div class="text-center">
<a href="/Manager/Discussion/OpenDiscussion/${data}" class="btn btn-primary text-white" style="cursor:pointer">
<i class="fas fa-comments"></i>
</a>
<a href="/Manager/Ticket/Details/${data}" class="btn btn-success text-white" style="cursor:pointer">
<i class="fas fa-info"></i>
</a>
</div>
`;
}, "width": "20%"
}
]
});
}
有谁知道我在哪里犯了错误?这有什么问题?抱歉,我是 asp.net 核心的初学者,也许 qestion 看起来很愚蠢,但我花了好几个小时来理解这里出了什么问题。
干杯!
更新
[HttpGet]
public IActionResult GetAll()
{
var obj = _unitOfwork.Ticket.GetAll(includeProperties: "TicketType,ApplicationUser");
return Json(new { data = obj });
}
这是一切开始的创建动作
public IActionResult Upsert(int? Id)
{
TicketVM ticketVM = new TicketVM()
{
Ticket = new Ticket(),
TicketTypeList = _unitOfwork.TicketType.GetAll().Select(i => new SelectListItem
{
Text = i.Name,
Value = i.Id.ToString()
})
};
if (Id == null)
{
return View(ticketVM);
}
ticketVM.Ticket = _unitOfwork.Ticket.Get(Id.GetValueOrDefault());
if (ticketVM.Ticket == null)
{
NotFound();
}
return View(ticketVM);
}
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Upsert(TicketVM ticketVM)
{
if (ModelState.IsValid)
{
if (ticketVM.Ticket.Id == 0)
{
_unitOfwork.Ticket.Add(ticketVM.Ticket);
}
else
{
_unitOfwork.Ticket.Update(ticketVM.Ticket);
}
_unitOfwork.Save();
return RedirectToAction(nameof(Index));
}
return View(ticketVM);
}
解决方案
我发现错误在哪里。在发生克里特岛行动的控制器中,我需要添加如下内容:
ticketVM.Ticket.Status = TicketStatus.Otvoren.ToString();
推荐阅读
- c - 为什么我在我自己的第 n 个根的代码中得到这个结果?
- c# - UWP 预定通知,应用关闭后 Toast
- javascript - 丢弃功能内的事件处理程序不起作用
- sql - 使用 `date_trunc` 的索引不会自动使用
- php - Toolkit php / Salesforce:更改语言
- javascript - 如何使用 controls.update(); 使用 PointerLockControls.js
- c - 多维数组初始化括号
- ios - 我正在尝试在默认网络浏览器中打开一个 url。但它没有响应。它没有打开默认的网络浏览器
- mercurial - 有没有办法在 mercurial 中将历史记录添加到文件中?
- docker - 如何使 docker-compose 构建图像不存在?