У меня есть основной вид и некоторые частичные виды. У моей модели есть список объектов, и я перебираю список, и каждый элемент отправляется в частичное представление. Я использую BeginForm на своем главном экране, и после отправки в главной форме мне удалось получить список объектов, но в их начальном состоянии. У меня есть текстовое поле, которое должно изменить одно из моих свойств элемента из списка, но, похоже, оно не работает.
Вот некоторый код Мой главный вид
@using (Html.BeginForm("CreateRecruitmentActivities", "RecruitmentActivities", FormMethod.Post))
{
@model MonthlyRecruitmentActivity
@Html.HiddenFor(x => x.HoursLeft, new { id = "hoursLeftHidden" })
@Html.HiddenFor(x => x.Title)
for (int i = 0; i < Model.Activities.Count(); i++)
{
@Html.HiddenFor(model => Model.Activities[i].File)
@Html.HiddenFor(model => Model.Activities[i].HoursDone)
@Html.HiddenFor(model => Model.Activities[i].Id)
}
<div>
@foreach (var activity in Model.Activities)
{
@Html.Partial("_recruitmentActivityComponent", activity)
}
<div><button type="submit" style="margin: 15px" id="saveDocBtn" value="Zatw_1" class="editButton" />Save</div>
</div>
}
Мой частичный:
@model RecruitmentActivityComponent
div class="col-md-2" style="font-size: smaller">
<div>@Html.LabelFor(model => Model.HoursDone, htmlAttributes: new { @class = "control-label " })</div>
<div>
@Html.EditorFor(model => Model.HoursDone, new { htmlAttributes = new { @class = "form-control countable" } })
@Html.ValidationMessageFor(model => Model.HoursDone, "", new { @class = "text-danger" })
</div>
</div>
Модели:
public class MonthlyRecruitmentActivity
{
public int ID { get; set; }
public string Title { get; set; }
public int HoursLeft { get; set; }
public RecruitmentActivityComponent[] Activities { get; set; }
}
public class RecruitmentActivityComponent
{
public int Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
[Required(ErrorMessage = "errr msg")]
[Range(0, int.MaxValue, ErrorMessage = "error msg")]
[Display(Name = "Text")]
public int HoursDone { get; set; }
public IFormFile File { get; set; }
}
Скажем сначала У меня был элемент типа RecruitmentActivityComponent с HoursDone, установленным в 0, я изменил его на 5 и отправил на мой контроллер. Мой контроллер все еще видит 0.