我有一个剃刀视图,其中我试图实现创建和编辑选项。这是下拉字段的cshtml代码:
@Html.DropDownListFor(model => model.StateID, (SelectList)ViewBag.StateID, "--Select--", new { @Id = "ddlState" })
但是在编辑模式下,尽管根据模型填充了所有其他字段,但下拉列表未按模型显示已保存的选定值。我使用了一个视图包来填充下拉列表并且工作正常。状态填充在下拉列表中。
ViewBag.StateID = new SelectList(queryStatesInLookup, "LookupID", "LookupCode")
我调试了剃刀页面并进行了检查。我从模型中获取状态id(例如:8),但此值不会与下拉列表绑定。是什么赋予了? :/
答案 0 :(得分:1)
显然,Viewbag不能与模型ID绑定的属性具有相同的名称。我的猜测是CLR无法在运行时解析动态对象类型Viewbag的冲突名称和模型属性名称。谢谢:))
答案 1 :(得分:0)
创建SelectList时,需要在其中传递选定的值。
在下面的示例中,将SelectedValue
替换为您选择的实际值。
ViewBag.StateID = new SelectList(queryStatesInLookup, "LookupID", "LookupCode", SelectedValue)