У меня сейчас есть вид, где модель - это список моделей, которые передаются в частичное представление и отображаются в виде списка на странице.Частичное представление имеет форму, которая при отправке должна отправлять модель обратно в контроллер, где она может перенаправить модель на страницу для редактирования ее свойств.Тем не менее, после публикации один из элементов данных модели имеет значение null, и я не могу понять, почему.Вот код, который я использую, который влияет на эту часть программы:
Модель
public class ViewEntryModel
{
#region properties
public long ActivityID { get; set; }
public Activity ActivityModel { get; set; }
public string ActivityType { get; set; }
public DateTime Date { get; set; }
public string ActivityName { get; set; }
public string Answer { get; set; }
#endregion
}
В главном представлении
<ul id="all_entries">
@foreach (var entry in Model)
{
<div id="@String.Format("entry{0}", entry.ActivityID)">@Html.Partial("UserEntryRow", entry)</div>
}
В частичном представлении
@model Web.Models.ViewEntryModel
<div class="entryInformation">
<div class="left">
<span>@Model.Date.Month/@Model.Date.Day/@Model.Date.Year</span>
</div>
<div class="right">
@using(Html.BeginForm("EditEntry", "UserEntry", Model))
{
<input type="submit" value="Edit" />
} <a>delete</a>
</div>
<div class="middle">
@if (Model.ActivityType.Equals("Exercise"))
{
<span>You completed the <strong>@Model.ActivityName</strong> exercise for <strong>@Model.Answer</strong>.</span>
}
else if (Model.ActivityType.Equals("Question"))
{
<span>You answered <strong>@Model.ActivityName</strong> with <strong>@Model.Answer</strong>.</span>
}
else if (Model.ActivityType.Equals("Nutrition"))
{
<span>You ate <strong>@Model.Answer</strong> servings of <strong>@Model.ActivityName</strong>.</span>
}
</div>
</div>
Метод контроллера, который он отправляет в
[HttpPost]
[Authorize(Roles = "User")]
public ActionResult EditEntry(ViewEntryModel model)
{
if (model.ActivityType.Equals("Exercise"))
{
ExerciseActivity exerciseActivity = (ExerciseActivity)model.ActivityModel;
return RedirectToAction("LogPastExerciseActivity", "UserDashboard", exerciseActivity);
}
return RedirectToAction("Index");
}
Когда он публикует, model.ActivityModel имеет значение null, хотя при отладке он был правильно установлен внутри представления.Любые идеи относительно того, что может быть причиной этого?