我有一个简单的(希望)情景。
我有一个强烈输入“座位”的“编辑”视图。我设法在该页面上获得一个多选列表,以便分配或取消分配计算机(jquery添加/删除项目)。
但是,当我提交表单时,选择列表的内容不会发布到控制器操作。
我认为这是因为“计算机”选择列表不是模型属性。
是否有将附加数据发布到模型属性之外的控制器?
我的表看起来像这样:
答案 0 :(得分:3)
您不需要发布此列表,因为您已将其存储到数据库中,甚至还有一个存储库来获取它,不是吗?因此,唯一需要发布的是用户选择,因为这是您唯一不知道的事情。在POST操作中,使用存储库重建视图模型中的列表,就像在呈现表单的GET操作中一样。
无论如何都要发布附加信息 数据到控制器之外 模特的属性?
当然,只需将它们包含为输入字段,以便在POST和控制器操作中发送它们的值:
[HttpPost]
public ActionResult Index(SomeViewModel model, string param1, string, param2)
{
...
}
但我再次坚持:你不需要这个。
答案 1 :(得分:0)
我通常创建ViewModel,它结合了视图所需的Entity模型中的任何属性,然后指向Visual Studio生成初始视图。
所以代替System.Web.Mvc.ViewPage<Seats>
,System.Web.Mvc.ViewPage<SeatEditorViewModel>
这样,无论您的视图需要什么属性,甚至都不必成为实体的一部分。