Asp.net mvc 强类型视图-通过编辑/创建表单发布其他数据

Asp.net mvc 强类型视图-通过编辑/创建表单发布其他数据,asp.net-mvc,asp.net-mvc-2,Asp.net Mvc,Asp.net Mvc 2,我有一个简单(希望如此)的场景 座位表 电脑桌 座位计算机表(因为一个座位可以分配多台计算机) 我有一个“座位”的强类型“编辑”视图。为了分配或取消分配计算机(jquery用于添加/删除项目),我在该页面上获得了一个多选列表 但是,当我提交表单时,选择列表的内容不会发布到控制器操作 我假设这是因为“计算机”选择列表不是模型属性 是否仍然可以将附加数据发布到模型属性之外的控制器 我的桌子看起来像这样: 我通常创建ViewModel,这些ViewModel将视图所需的实体模型中的任何属性组合在一

我有一个简单(希望如此)的场景

  • 座位表
  • 电脑桌
  • 座位计算机表(因为一个座位可以分配多台计算机)
我有一个“座位”的强类型“编辑”视图。为了分配或取消分配计算机(jquery用于添加/删除项目),我在该页面上获得了一个多选列表

但是,当我提交表单时,选择列表的内容不会发布到控制器操作

我假设这是因为“计算机”选择列表不是模型属性

是否仍然可以将附加数据发布到模型属性之外的控制器

我的桌子看起来像这样:

我通常创建ViewModel,这些ViewModel将视图所需的实体模型中的任何属性组合在一起,然后指向实体模型,以便Visual Studio生成初始视图

因此,它不是
System.Web.Mvc.ViewPage
,而是
System.Web.Mvc.ViewPage


这样,视图所需的任何属性都不必是实体的一部分。

您不需要发布此列表,因为您已经将其存储到数据库中,并且您甚至有一个存储库来获取它,不是吗?因此,唯一需要发布的是用户选择,因为这是您唯一不知道的。在POST操作中,使用存储库在视图模型中重建列表,与呈现表单的GET操作相同

有没有其他的方法来发布附加的内容 将数据传输到外部控制器 模型的属性

当然,只需将它们作为输入字段包含,以便它们的值在POST和控制器操作中发送:

[HttpPost]
public ActionResult Index(SomeViewModel model, string param1, string, param2)
{
    ...
}

但我再次强调:在你的情况下,你不需要这个。

哇。。。我现在觉得自己很笨。。。我所要做的就是在提交之前将JQuery代码片段添加到“selelct”我的多选列表中的所有项目。它正在工作。您点击了“发布用户选择”字样。谢谢,谢谢你的建议,卢卡斯。对于这一个模块,我想我会坚持使用LINQ生成的ViewModel。然而,对于一些更复杂的页面,我肯定会使用这种技术。