Почему я получаю данные частичного просмотра = null в записи действия контроллера основного вида?
Моя модель:
public class WorkTimeRegulationViewModel
{
public Guid Id { get; set; }
public string Name { get; set; }
public byte NumberOfAvailableRotations { get; set; }
public IEnumerable<WorkTimeViewModel> AssignedWorkTimes { get; set; }
public IEnumerable<AllocationViewModel> EnroledParties { get; set; }
}
Мой основной вид:
@model TimeAndAttendance.web.ViewModels.WorkTimeRegulationViewModel
@{
ViewBag.Title = "WorkTimeRegulationForm";
Layout = "~/Views/Shared/_LayoutAR.cshtml";
}
<h4>TEST</h4>
@using (Html.BeginForm("Save", "WorkTimeRegulation"))
{
// IEnumerable<TimeAndAttendance.web.ViewModels.WorkTimeViewModel> WorkTimeViewModel = Model.
<div class="form-group">
@Html.LabelFor(m => m.Name)
@Html.TextBoxFor(m => m.Name, new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.Name)
</div>
<div class="form-group">
@Html.LabelFor(m => m.NumberOfAvailableRotations)
@Html.Label("")
</div>
@Html.Partial("_WorkTime",Model.AssignedWorkTimes.ToList())
<div>
</div>
@Html.HiddenFor(m => m.Id)
// @Html.AntiForgeryToken()
<button type="submit" class="btn btn-primary">ٍSave</button>
}
Мой частичный вид:
@model IEnumerable<TimeAndAttendance.web.ViewModels.WorkTimeViewModel>
@(Html.Kendo().Grid(Model)
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.Name);
columns.Bound(p => p.NumberOfWorkHours).Width(120);
columns.Bound(p => p.NumberOfShortDays).Width(120);
columns.Command(command => { command.Edit(); command.Destroy(); }).Width(500);
})
.ToolBar(toolbar => toolbar.Create()
.Editable(editable => editable.Mode(GridEditMode.InLine).ConfirmDelete("test").DisplayDeleteConfirmation("Test"))
// .HtmlAttributes(new { style = "height:550px;" })
.Sortable()
.DataSource(dataSource => dataSource
.Ajax()
.Events(events => events.Error("error_handler"))
.Model(model => model.Id(p => p.Id))
.Create(update => update.Action("EditingInline_Create", "WorkTimeRegulation"))
.Read(read => read.Action("EditingInline_Read", "WorkTimeRegulation"))
.Update(update => update.Action("EditingInline_Update", "WorkTimeRegulation"))
.Destroy(update => update.Action("EditingInline_Destroy", "WorkTimeRegulation"))
)
)
Мой контроллер для основного вида:
public ActionResult Save(WorkTimeRegulationViewModel x)
{
x.AssignedWorkTimes = null; //Why
return View();
}
Через firebug: Сетка в режиме редактирования:
<input class="k-textbox valid" id="Name" name="Name" data-bind="value:Name" aria-invalid="false">
После того, как я использую префикс:
@Html.Partial("_WorkTime", Model.AssignedWorkTimes,
new ViewDataDictionary { TemplateInfo = new TemplateInfo { HtmlFieldPrefix = "AssignedWorkTimes" } })
Я получаю следующее:
<input class="k-textbox" id="AssignedWorkTimes_Name" name="AssignedWorkTimes.Name" data-bind="value:AssignedWorkTimes.Name">
но коллекция по-прежнему нулевая!
Примечание: у меня нет контроллера для частичного просмотра.
Не знаю почему x.AssignedWorkTimes = null