asp. net как добавить селектор количества к каждому элементу списка? - PullRequest
0 голосов
/ 06 февраля 2020

Я очень плохо знаком с ASP. NET и веб-приложениями в целом. Я пытаюсь создать приложение, которое отображает количество материалов с помощью селектора количества через RadioButtons для каждого материала. Тем не менее, я не могу заставить кнопки радио работать правильно. Я могу выбрать только 1 кнопку в целом, а не 1 для каждого материала.

Мой MaterialController с несколькими материалами:

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 l oop, но я не знаю, как сделать это правильным образом. Спасибо.

Ответы [ 2 ]

0 голосов
/ 06 февраля 2020

Пожалуйста, замените код radiobutton на код ниже ...

@Html.RadioButtonFor(model => item.Quantity, quant, new { @name = item.Name })
@quant<br />
0 голосов
/ 06 февраля 2020

Попробуйте заменить код во втором foreach l oop следующим:

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