Для пост-запроса привязка модели не работает, если я использую частичное представление.
Модель основного представления - MainViewModel.
public class MainViewModel
{
ModelPart Model {get;set;}
}
public class ModelPart
{
Public string MyVariable {get; set;}
}
Если я передаюОсновное представление моделирует частичное представление, тогда привязка успешна, и любой ввод в MyVariable
находится в методе Controller Post.
MainPage
@model TEST.MainViewModel
@using (Html.BeginForm(FormMethod.Post, new { data_ajax = "false", enctype = "multipart/form-data" }))
{
@Html.Partial("~/Areas/Views/Shared/_Input.cshtml", Model.Model)
}
Частичное
@model TEST.ModelPart
@Html.EditorFor(m => m.MyVariable)
Это работает!
Если я передам только частичную модель ModelPart, привязка не будет успешной.
MainPage
@model TEST.MainViewModel
@using (Html.BeginForm(FormMethod.Post, new { data_ajax = "false", enctype = "multipart/form-data" }))
{
@Html.Partial("~/Areas/Views/Shared/_Input.cshtml", Model)
}
Частичная
@model MainViewModel
@Html.EditorFor(m => m.Model.MyVariable)
Это не работает. Поскольку я хотел бы использовать партиалы для повторного использования форм ввода, я хотел бы решить эту проблему. Нужно ли делать привязку свойств вручную в частичном представлении? Другой обходной путь - передача значений с использованием javascript, но могу ли я в любом случае получить привязку по умолчанию для этого?