MVC UpdateModel, когда имена не совпадают
Допустим, у вас есть модель, которая выглядит примерно так:
public class MyClass {
public string Name { get; set; }
public DateTime MyDate { get; set; }
}
Шаблон редактирования по умолчанию, предоставляемый Visual Studio, представляет собой простое текстовое поле дляMyDate
имущество. Это все хорошо и хорошо, но, скажем, вам нужно разделить это на компоненты месяц / день / год, и ваша форма будет выглядеть следующим образом:
<label for="MyDate">Date:</label>
<%= Html.TextBox("MyDate-Month", Model.MyDate.Month) %>
<%= Html.TextBox("MyDate-Day", Model.MyDate.Day) %>
<%= Html.TextBox("MyDate-Year", Model.MyDate.Year) %>
Когда это будет представлено, вызовUpdateModel
не будет работать, так как нет определения дляMyDate-Month
, Есть ли способ добавить пользовательский связыватель в проект для обработки подобных ситуаций, или если входные данные HTML названы по-разному (по каким-либо причинам)?
Один из обходных путей, который я обнаружил, заключается в использовании JavaScript для вставки скрытого ввода в форму перед отправкой, которая объединяет поля и имеет правильное имя, но это неправильно.