使用viewModel将所选复选框发布到控制器操作

时间:2013-07-01 10:13:33

标签: jquery asp.net-mvc-2

使用现有的基于MVC的应用程序,有一个产品视图,其中ViewModel为ProductViewModel,此ViewModel具有Product可以具有的所有基本属性,如产品名称,类型,价格等....

在此视图中使用此产品创建流程,目标是将客户列表与产品关联(这不是修订)。

要检索用户列表以便用户选择那些关联的客户,目前在按钮单击时,有一个ajax调用(getCustomers)请求控制器操作获取列表&将它与复选框一起显示在一个表中,这个html在jQuery Ajax调用中即时创建,

使用当前实现时,在制作产品视图的POST操作时,选定的ID不会在视图模型中填充。

目标是将选定的客户ID以及产品详细信息添加到ViewModel中。

有没有办法这样做?

1 个答案:

答案 0 :(得分:0)

我会尝试以我理解的最佳方式回答它。所以,假设你创建了带有复选框的'table',我想这看起来像这样:

<form>
<table>
  <tr><td><input type='checkbox' value='1' name='myCheckbox' />Some text</td></tr>
  <tr><td><input type='checkbox' value='2' name='myCheckbox' />Some text</td></tr>
  <tr><td><input type='checkbox' value='3' name='myCheckbox' />Some text</td></tr>
  <tr><td><input type='checkbox' value='4' name='myCheckbox' />Some text</td></tr>
</table>
<input type="submit" />
</form>

在ProductModel类中:

public class ProductModel
{
   // Define the property here.
   public int[] MyCheckbox { get; set; }

   // The constructor where you do the initialization
   public void ProductModel(int[] myCheckbox)
   {
      MyCheckbox = myCheckbox;
   }
}

在您的控制器方法中:

[HttpPost]
public ActionResult SomeMethod(ProductModel productModel)
{
    foreach(int value in productModel.MyCheckbox)
    {
        // Your code here..
    }
}

您将在控制器方法中将复选框的值作为数组获取。