我是MVC的新手,所以这可能听起来很傻,但是这里有:我有一个模型,其中包含两个需要传递给编辑表单的列表:
public class BaseViewModel
{
public IEnumerable<portal_notifications_types> Types { get; set; }
public IEnumerable<portal_notifications_importances> Importances { get; set; }
}
在编辑表单中,我有两个此字段的下拉列表:
@Html.DropDownListFor(m => m.Notification.TypeId, new SelectList(Model.Types, "Id", "Type"), "-- Select type --", new { onchange = "GetNotifType();", style = "width:150px;" })
@Html.DropDownListFor(m => m.Notification.ImportanceId, new SelectList(Model.Importances, "Id", "Importance"), "-- Select importance --", new { style = "width:150px;" })
当我第一次进入编辑视图时,一切正常,填充下拉列表并选择相应的值。 但是,当我提交表单时,下拉列表会抛出错误,因为Model.Types和Model.Importances列表为空。 我怎么能克服这个?我想避免使用ViewBag来存储这些列表,虽然我知道它会起作用。
答案 0 :(得分:1)
在Post
操作方法中再次传递查看模型。
[HttpPost]
public ActionResult Index(ViewModel m)
{
return View(m); //Pass the View Model again.
}
答案 1 :(得分:0)
您必须在SelectLists
的{{1}} Controller
方法中重新填充这两个POST
,然后再次在视图中传递Edit
进行编辑。有关详细信息,请分享ViewModel
Controller
代码。