Проблема заключается в том, что когда я помещаю 2 элемента управления одного типа на страницу, мне нужно указать разные префиксы для привязки. В этом случае правила проверки, созданные сразу после формы, являются неправильными. Так как получить работу проверки клиента для случая ?:Asp.Net MVC2 Clientside Проблема проверки с элементами управления с префиксами
страница содержит:
<%
Html.RenderPartial(ViewLocations.Shared.PhoneEditPartial, new PhoneViewModel { Phone = person.PhonePhone, Prefix = "PhonePhone" });
Html.RenderPartial(ViewLocations.Shared.PhoneEditPartial, new PhoneViewModel { Phone = person.FaxPhone, Prefix = "FaxPhone" });
%>
управления ViewUserControl <PhoneViewModel>:
<%= Html.TextBox(Model.GetPrefixed("CountryCode"), Model.Phone.CountryCode) %>
<%= Html.ValidationMessage("Phone.CountryCode", new { id = Model.GetPrefixed("CountryCode"), name = Model.GetPrefixed("CountryCode") })%>
где Model.GetPrefixed("CountryCode")
просто возвращает "FaxPhone.CountryCode" или «PhonePhone.CountryCode» в зависимости от префикса
И вот правила проверки, созданные после формы. Они дублируются для имени поля «Phone.CountryCode». В то время как желаемый результат 2 правила (обязательно, номер) для каждого из имен полей «FaxPhone.CountryCode», «PhonePhone.CountryCode» alt text http://www.freeimagehosting.net/uploads/37fbe720bf.png
вопрос несколько дубликат Asp.Net MVC2 Clientside Validation and duplicate ID's problem но советуют вручную генерировать идентификаторы Безразлично Это помогает.
Nice. Этот ответ был очень полезен. Хотелось бы, чтобы я мог увеличить его еще пару раз. –
Очень, очень полезно. Спасибо. – Luke
Я знаю, что это старый ответ, но мне было интересно, предпочтительнее ли использовать этот метод в вашем представлении: ViewData.TemplateInfo.HtmlFieldPrefix = "myViewModel.MyCustomObjdect"; –