думаю, что я нашел достойное решение для этого, поэтому я предоставлю ответ для любого, кто столкнется с этим в будущем!
Что касается Html-помощника, я почему-то совершенно упустил возможность создания расширенияметод!Поэтому, в конце концов, когда мне пришло в голову, я написал метод расширения, который в основном вызывает другие методы помощника Html, чтобы предоставить три поля (независимо от того, используете ли вы выпадающий ввод текста)
public static string DateTime(this HtmlHelper helper, string name)
{
StringBuilder builder = new StringBuilder();
string dayName = name + ".Day";
string monthName = name + ".Month";
string yearName = name + ".Year";
builder.Append(helper.TextBox(dayName));
builder.Append(helper.DropDownList(monthName, typeof (Months)));
builder.Append(helper.TextBox(yearName));
return builder.ToString();
}
Что касается привязки после публикации формы, я просто создал класс, который реализовал IModelBinder
и установил его по умолчанию для типа DateTime
при запуске приложения.Затем это можно переопределить на уровне действия контроллера, если потребуется другой метод привязки.По сути, это была более простая версия связки Скотта, с которой я связался в своем вопросе.
В данный момент работает как шарм (если немного упрощенно), но я уверен, что этого будет достаточно для обоснования.для всех, кто озадачен этой проблемой!