Это теперь сломано:
<%=Html.TextBox("Name", new Hash(@class => "required"))%>
В предварительном просмотре 5 вышеприведенное связывает значение ViewData.Model.Name с текстовым полем. Это все еще работает:
<%=Html.TextBox("Name")%>
Но если вы хотите указать атрибуты html, вы также должны указать значение следующим образом:
<%=Html.TextBox("Name", ViewData.Model.Name, new Hash(@class => "required"))%>
На самом деле это не совсем безопасно. Если есть вероятность, что ViewData.Model может быть нулевым, вам нужно сделать что-то вроде этого:
<%=Html.TextBox("Name", ViewData.Model == null ? null : ViewData.Model.Name, new Hash(@class => "required"))%>
Это изменение противоречит примечаниям к выпуску бета-версии:
"... для уменьшения перегрузки
неоднозначность ... параметр значения был изменен
от объекта к строке для нескольких
вспомогательные методы. "
Параметр значения для TextBox раньше был строкой, и он был изменен на объект. Поэтому, чтобы избежать неясностей, им пришлось устранить одну перегрузку, которую я использую больше всего. (
ИМХО, каждый вспомогательный метод HTML должен иметь перегрузки, которые разрешают связывание во всех случаях без указания значения. В противном случае мы получим несовместимый код представления, который запутает будущих разработчиков.