Похоже на публикацию мне проблемы с вложенной моделью.Убедитесь, что атрибут name
для всех свойств модели задан с использованием вложенной нотации с использованием.оператор например SetResults[0].Team1Result
.Это должно быть обработано вспомогательными методами @Html
автоматически.Проверьте, правильно ли вы генерируете HTML для модели, как показано ниже:
@model MatchResultVM
for (var i = 0; i < Model.SetResults.Count(); i++)
{
@Html.TextBoxFor(x => Model.SetResults[i].Team1Result)
@Html.TextBoxFor(x => Model.SetResults[i].Team2Result)
...
}
Приведенный выше код должен генерировать HTML, как показано ниже:
<input name="SetResults[0].Team1Result" id="SetResults_0__Team1Result" />
<input name="SetResults[0].Team2Result" id="SetResults_0__Team2Result" />
<input name="SetResults[1].Team1Result" id="SetResults_1__Team1Result" />
<input name="SetResults[1].Team2Result" id="SetResults_1__Team2Result" />
...
В Asp.Net Core вы также можетеиспользуйте TagHelpers
вместо HtmlHelpers
, так что вы можете написать цикл for, как показано ниже, с помощью ввода TagHelper.Для получения дополнительной информации о TagHelpers, пожалуйста, смотрите эту ссылку
for (var i = 0; i < Model.SetResults.Count(); i++)
{
<input asp-for="@Model.SetResults[i].Team1Result" />
<input asp-for="@Model.SetResults[i].Team2Result" />
...
}
Если вы также можете опубликовать представление бритвы, было бы полезно увидеть, что происходит