В моем приложении я хочу создать модель, которая может иметь динамический список атрибутов:
Класс провайдера
using System;
using System.Collections.Generic;
namespace DynamicForms.Models
{
public class Provider
{
public String Name { get; set; }
public List<Attribute> Attributes { get; set; }
public Provider()
{
Attributes = new List<Attribute>();
}
}
}
Мой контроллер имеет два метода.Один для добавления дополнительных атрибутов в текущую модель и один для сохранения модели провайдера.Метод добавления дополнительных атрибутов выглядит следующим образом:
[HttpPost]
// Add attribute to current provider model
public IActionResult Index(Provider provider)
{
provider.Attributes.Add(new Models.Attribute());
return View(provider);
}
И мой вид выглядит следующим образом:
@model Provider
@using (Html.BeginForm())
{
<div>
@Html.TextBoxFor(m => m.Name)
<input type="submit" value="Add attribute" formmethod="post"/>
</div>
<div>
@foreach ( var attribute in Model.Attributes)
{
<div>
@Html.TextBoxFor(a => attribute.Name)
@Html.TextBoxFor(a => attribute.Value)
</div>
}
</div>
<div>
<input type="submit" value="Save form" formaction="Provider/Save" formmethod="post"/>
</div>
}
При нажатии кнопки «Добавить атрибут» добавляется атрибут кнопки и строка вводаполя появляются.Однако, когда я нажимаю кнопку еще раз, ничего не происходит.Никакая другая строка не добавлена.Количество атрибутов модели по-прежнему равно 1. Я искал решения по всей сети, но не смог найти ничего, что решило бы мою проблему.Как сделать так, чтобы поля формы динамически добавлялись в модель и отображались в vieW?