将 viewbag int 值分配给 Html 助手下拉列表

Assign viewbag int value to Html Helper Dropdown list

我正在尝试将 view-bag 中存在的 int 值分配给下拉列表。

查看

@Html.DropDownListFor(m => m.nStatusID, ViewBag.ReasonTypeList asSelectList,ViewBag.nStatusID, new { @class = "form-control" })

控制器动作包含-

var Complaint = db.ComplaintRegistrations.SingleOrDefault(x => x.nCallID == id);
ViewBag.nStatusID = Complaint.nStatusID;
List<ReasonTypeMaster> ReasonTypeList = db.ReasonType.ToList();
ViewBag.ReasonTypeList = new SelectList(ReasonTypeList, "nReasonTypeID", "cReasonType");

错误- 'System.Web.Mvc.HtmlHelper' 没有名为 'DropDownListFor' 的适用方法,但似乎有一个名为该名称的扩展方法。不能动态调度扩展方法。考虑在没有扩展方法语法的情况下转换动态参数或调用扩展方法。

您似乎想要设置下拉列表的选定值,您需要在模型对象中设置它,助手将负责设置为选定值。试一试:

var Complaint = db.ComplaintRegistrations.SingleOrDefault(x => x.nCallID == id);
if(Complaint != null)
    model.nStatusID = Complaint.nStatusID;

List<ReasonTypeMaster> ReasonTypeList = db.ReasonType.ToList();
ViewBag.ReasonTypeList = new SelectList(ReasonTypeList, "nReasonTypeID", "cReasonType");

return View(model);

在 View 中你只需要:

@Html.DropDownListFor(m => m.nStatusID, 
                      ViewBag.ReasonTypeList asSelectList, 
                      new { @class = "form-control" })

m.nStatusID 将具有您在控制器操作中设置的值,并将填充为在下拉元素中选择的值。