asp.net 如何将数量选择器添加到列表的每个项目?



我对 ASP.NET 和Web应用程序很陌生。我正在尝试创建一个应用程序,该应用程序通过单选按钮为每个材料显示带有数量选择器的材料。 但是,我无法使单选按钮正常工作。我一般只能选择 1 个按钮,而不是每种材料选择 1 个按钮。

我的材质控制器与一些材料:

public class MaterialController : Controller
{
// GET
public ActionResult Index()
{
var materials = from e in GetMaterialList()
orderby e.Id
select e;
return View(materials);
}
[NonAction]
public List<Material> GetMaterialList()
{
return new List<Material>
{
new Material {Id = 1, Name = "Material 1", Quantity = 0, Quantities = new []{0,  50, 100, 200}},
new Material {Id = 2, Name = "Material 2", Quantity = 0, Quantities = new []{0,  50, 100, 200}},
new Material() {Id = 3, Name = "Material 3", Quantity = 0, Quantities = new []{0,  50, 100, 200}},
new Material() {Id = 4, Name = "Material 4", Quantity = 0, Quantities = new []{0,  50, 100, 200}}
};
}
}

我的模型:

public class Material
{
public int Id { get; set; }
public string Name { get; set; }
public int Quantity { get; set; }
public int[] Quantities { get; set; } 
}

我的观点的相关部分:

@model IEnumerable<MaterialOrders.Models.Material>
...
@foreach (var item in Model)
{
<div class="col-md-6">
<div class="col-md-6">
@Html.DisplayFor(modelItem => item.Name)<br/>
</div>
<div class="col-md-6">
@foreach (var quant in item.Quantities)
{
@Html.RadioButtonFor(model => item.Quantity, quant)
@quant<br/>
}
</div>
</div>
}

我认为错误出在第二个 foreach 循环中,但我不知道如何以正确的方式做到这一点。谢谢。

尝试将第二个 foreach 循环中的代码替换为:

<input id="@quant" name="@item.Name" type="radio" value="@quant">@quant                
<br />

请将您的radiobutton代码替换为以下代码...

@Html.RadioButtonFor(model => item.Quantity, quant, new { @name = item.Name })
@quant<br />

最新更新