【发布时间】:2010-05-03 15:31:58
【问题描述】:
问题是:当我在一个页面上放置 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
<%= 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”的 2 个规则(必需,数字) alt text http://www.freeimagehosting.net/uploads/37fbe720bf.png
这个问题与Asp.Net MVC2 Clientside Validation and duplicate ID's problem有些重复 但是手动生成 id 的建议没有帮助。
【问题讨论】:
标签: validation asp.net-mvc-2 client viewusercontrol prefixes