我有一个View
,允许用户从下拉列表中选择一个项目,然后将其发布到Controller
。 ViewModel
具有下拉项列表和所选项的属性。一切正常,除了我想在表单POST后保留列表。
我认为我可以通过为列表生成隐藏字段来促进模型绑定,但这看起来很混乱。实现这一目标的干净方法是什么?感谢。
以下是相关代码:
public class CreateUserViewModel
{
public int LocationId { get; set; }
public List<UserLocationViewModel> Locations { get; set; }
public class UserLocationViewModel
{
public int Id { get; set; }
public string Name { get; set; }
}
}
@Html.LabelFor(model => model.LocationId)
@Html.DropDownListFor(model => model.LocationId,
new SelectList(Model.Locations, "Id", "Name"),
"-- Select Location --"))
public ActionResult Create(CreateUserViewModel model)
修改
场景是通过ajax在模式对话框中发布一个表单,我需要在控制器中进行验证,但是能够保留viewmodel的状态,以便我可以在模态表单上显示验证内容。我有这个工作,但目前需要重新填充列表,然后在验证失败时返回模型。