如何将我的对象列表绑定到.net MVC 5中的单选按钮

时间:2018-07-11 22:16:46

标签: asp.net-mvc razor

我有一个虚拟模型调用Manufacture,并且有一个虚拟数据调用模型的列表,如下所示。

这是我的模特:

Public class Manufacture
{
 public string ManufactureName { get; set; }
 public string somedata1 { get; set; }
 public string somedata2 { get; set; } 
 public string somedata3 { get; set; }
}

在控制器HTTPGet中,我正在向视图呈现一个列表:

List<Manufacture> model = new List<Manufacture>
{
    new Manufacture(){ Name = "VW", somedata1="abc",somedata2="def",somedata3="ghi" },
    new Manufacture(){ Name = "BMW", somedata1="jkl",somedata2="mno",somedata3="pqr" },
    new Manufacture(){ Name = "Audi", somedata1="stu",somedata2="vwx",somedata3="y&z" },
};

return View(model);

在我的视图中,我有类似的内容将每个ManufactureName作为单选按钮列出:

@for (int i = 0; i < Model.Manufacture.Count; i++)
{
   <div>
        <label>
            @Html.RadioButton("selectedManufacture", Model.Manufacture[i].ManufactureName)
            @Model.Manufacture[i].ManufactureName
        </label>
    </div>

    @Html.HiddenFor(m => m.Manufacture[i].somedata1);
    @Html.HiddenFor(m => m.Manufacture[i].somedata2);
    @Html.HiddenFor(m => m.Manufacture[i].somedata3);
}

在我的控制器HTTPPost方法中,我有类似以下内容:

[HttpPost]
public ActionResult ChooseYourCarManufacture(Manufacture model, string selectedManufacture)
{
    ...
}

使用此HTTPPost方法,我可以使用selectedManufacture检测到选择了哪个ManufactureName,但是无法将其绑定到Manufacture列表中的对象。也就是说,我希望有一种更好的方法来确定选择了哪个ManufactureName,这样我便可以轻松地渲染以筛选有关该制造商的所有data properties。我该怎么办?

0 个答案:

没有答案