我正在创建一个基于jQuery Mobile (Alpha 3)的ASP.NET MVC 3应用程序,利用 MVC3 附带的不显眼的验证。当直接访问页面时(Url 中没有哈希),验证工作完美。但是,当您导航到页面时,jQuery Mobile 使用 Ajax Navigation 动态加载它(在 Url 中显示哈希)并且验证停止工作。
以下是使用中的代码示例:
模型:
[Required(ErrorMessage = "Missing value")]
[DisplayName("Property Display Name")]
public int? PropertyName { get; set; }
查看(剃刀):
@Html.LabelFor(model => model.PropertyName)
@Html.TextBoxFor(model => model.PropertyName)
@Html.ValidationMessageFor(model => model.PropertyName)
生成的 HTML:
<label for="PropertyName">Property Display Name</label>
<input data-val="true" data-val-number="The field Property Display Name must be a number." data-val-required="Missing value" id="PropertyName" name="PropertyName" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="PropertyName" data-valmsg-replace="true"></span>
可能之前已经加载了其他页面并且 HTML 元素不再具有唯一 ID。除了滚动我自己的 Html Helper 类来为 Label、TextBox 和 ValidationMessage 生成 HTML 之外,还有什么方法可以处理这种情况吗?