Asp.net mvc 将所选值的集合发布到服务器操作

Asp.net mvc 将所选值的集合发布到服务器操作,asp.net-mvc,asp.net-mvc-5.2,Asp.net Mvc,Asp.net Mvc 5.2,我有一张带产品保修单的表格 每个列表项都有复选框 如何将所选资源(保修)列表发布到服务器 我必须在代码中更改什么 将向服务器发布AssuraryPlusViewModel对象。它包含一个列表SelectedSources,其中应包含选定的保修条款 是否可以对所选列表使用复杂对象 考虑一下,我必须将WarrantyPlusViewModel发布到服务器,其中包括 所选保修对象的SelectedSources属性 @model WarrantyPlusViewModel <div class

我有一张带产品保修单的表格

每个列表项都有复选框

如何将所选资源(保修)列表发布到服务器

我必须在代码中更改什么

将向服务器发布AssuraryPlusViewModel对象。它包含一个列表SelectedSources,其中应包含选定的保修条款

是否可以对所选列表使用复杂对象

考虑一下,我必须将WarrantyPlusViewModel发布到服务器,其中包括

所选保修对象的SelectedSources属性

@model WarrantyPlusViewModel

<div class="row">
     <div class="col-md-10 col-md-offset-1">

        @using (...)
        {
            <table class="table table-striped">
                <tr>
                    <th></th>
                    <th>@Html.DisplayFor(m => m.ProductSelected.Name)</th>
                    <th>@Html.DisplayFor(m => m.ProductSelected.Description,l)</th>
                    <th>@Html.DisplayFor(m => m.ProductSelected.Price)</th>
                </tr>
                @foreach (var product in Model.ProductList)
                {
                    <tr>
                        <td><input type="checkbox" name="SelectedSources" value="@product" /></td>

                        <td>@product.Name</td>
                        <td>@product.Description</td>
                        <td>@product.Price</td>
                    </tr>
                }
            </table>
            <input type="submit" value="Save" />
            @Html.HiddenFor(p => p.SerialNumber)
        }

    </div>

[HttpPost]
public virtual async Task<ActionResult> Save(WarrantyPlusViewModel viewModel)
{ 
   return View(MVC.WarrantyPlus.WarrantyPlus.Views.OverviewWarrentyPlus, viewModel);
}

 public class WarrantyPlusViewModel
    {

        // other properties

        public List<WarrantyPlusProductViewModel> ProductList { get; set; }

        public IEnumerable<WarrantyPlusProductViewModel> SelectedSources { get; set; }
    }
@model保修plusViewmodel
@使用(…)
{
@DisplayFor(m=>m.ProductSelected.Name)
@DisplayFor(m=>m.ProductSelected.Description,l)
@DisplayFor(m=>m.ProductSelected.Price)
@foreach(Model.ProductList中的var产品)
{
@产品名称
@产品说明
@产品价格
}
@Html.HiddenFor(p=>p.SerialNumber)
}
[HttpPost]
公共虚拟异步任务保存(保修PLusViewModel viewModel)
{ 
返回视图(MVC.WarrantyPlus.WarrantyPlus.Views.OverviewWarrentyPlus,viewModel);
}
公共类担保PlusViewModel
{
//其他属性
公共列表ProductList{get;set;}
公共IEnumerable SelectedSources{get;set;}
}

这样绑定真的很难。如果你想做,你应该做

如果我在你的位置上,我只会使用
ProductId
,了解一些知识,并提出以下解决方案:

@for (var i = 0; i < Model.ProductList.Count(); i++)
{
    <tr>
        <td><input type="checkbox" name="ProductList[" @i "].Id" value="@Model.ProductList[i].Id" /></td>

        <td>@Model.ProductList[i].Name</td>
        <td>@Model.ProductList[i].Description</td>
        <td>@Model.ProductList[i].Price</td>
    </tr>
}
@for(var i=0;i
我刚找到这篇文章:我希望它能起作用,但快速阅读这篇文章,它似乎提供了我需要的东西,你觉得怎么样?我已经用@foreach和服务器端viewModel解决了它:public int[]selectedds{get;set;}