Я занимаюсь разработкой веб-приложения MVC с сетевым ядром 2.2.
У меня есть следующие классы:
public class A
{
public IList<B> Bs { get; set; }
}
public class B
{
public string Id { get; set; }
public string Name { get; set; }
}
Следующее представление:
@model A
@for (int i = 0; i < Model.Bs.Count; i++)
{
<partial name="_BsPatialView" for="Bs[i]" />
}
И следующее частичное представление (_BsPatialView.cshtml):
<input type='hidden' asp-for="@Model.Id" />
<input asp-for="@Model.Name" />
До этого момента все было сгенерировано нормально.Примером созданных входных данных в частичном представлении является:
<input type="hidden" id="Bs_3__Id" name="Bs[3].Id" />
<input type="text" id="Bs_3__Name" name="Bs[3].Name" />
С именем элемента и идентификаторами моделиСвязыватель в контроллере может правильно связать все.
Проблема в том, что я пытаюсь вернуть частичное представление из контроллера.То, что я делаю, это:
public IActionResult AddBElement(A a)
{
a.Bs.Add(new B() { Id = Guid.NewGuid() });
return PartialView("_BsPatialView", a.Bs.Last());
}
Полученный html:
<input type="hidden" id="Id" name="Id" />
<input type="text" id="Name" name="Name" />
Итакзатем, когда я отправляю форму, в которой находятся эти входные данные, привязка модели не выполняется.
Итак, как мне вернуть частичное представление из контроллера, чтобы это исправить?Есть ли какой-либо эквивалент атрибута тега помощника тега for
для использования на контроллере?