MVC3不显眼的验证器没有写入部分页面

时间:2012-07-18 20:34:46

标签: asp.net-mvc-3 partial-views unobtrusive-validation

当通过ajax调用检索以下代码时,不会在视图中写入验证器。可以将任意数量的这些部分视图添加到页面中,并且文本框获取日期选择器,这就是生成唯一ID的原因。我当然感谢任何帮助.vie

@using Nautilus.Core.Model.Enumeration
@using Nautilus.Web.Models
@using Nautilus.Web.Views.Tools
@model IntensityHistoryModel

<tr>
    <td class='removeIntensityScore' title='Click to remove this item.'></td>
    <td>
        <span></span>
    </td>
    <td>
        @Html.ValidationMessageFor(m => m.IntensityDateGUID)
        @Html.TextBoxFor(m => m.IntensityDate, new { id = Model.IntensityDateGUID, @class = "intensityScoreDate", style = "width:120px" })
    </td>
    <td>
        @Html.DropDownList("IntensityScore", ViewHelper.GetSelectListWithDescriptionFromEnum<IntensityScore.Values>("", new[] { "0" }), " -- Select -- ", new { style = "width:150px;margin:0" })
    </td>
</tr>

2 个答案:

答案 0 :(得分:1)

当你进行ajax调用时,在回调函数中你必须再次调用验证。

像这样的东西

$("#myDiv").load($("#myA").attr("href"), function () {
        $.validator.unobtrusive.parse("#myFormPartial");
});

答案 1 :(得分:0)

它不包括验证数据属性,因为元素不在表单中。解决方法是初始化部分视图的FormContext

@{
    ViewContext.FormContext = new FormContext();
}

<tr><!-- your partial content --></tr>