问题是:当我在一个页面上放置 2 个相同类型的控件时,我需要为绑定指定不同的前缀。在这种情况下,表单后生成的验证规则不正确。那么如何让客户验证这个案例呢?:
该页面包含:
<%
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”重复。虽然所需的结果是每个字段名称“FaxPhone.CountryCode”、“PhonePhone.CountryCode” 替代文本 http://www.freeimagehosting.net/uploads/37fbe720bf.png的 2 个规则(必需,数字)
这个问题与Asp.Net MVC2 Clientside Validation 和重复 ID 的问题有些重复, 但手动生成 id 的建议没有帮助。