1

我是 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 来存储这些列表,尽管我知道它会起作用。

4

2 回答 2

1

在您的Action Method中再次传递View ModelPost

[HttpPost]
public ActionResult Index(ViewModel m)
{
     return View(m); //Pass the View Model again.
}
于 2013-08-13T06:58:33.897 回答
0

SelectLists您必须在Controller POST方法中重新填充这两个,Edit并再次在视图中传递以ViewModel进行编辑。请分享您的Controller代码以Edit获取更多详细信息。

于 2013-08-13T06:56:59.853 回答