0

我正在尝试在我正在开发的 Web 应用程序中实现一个简单的客户端验证,并且实际的验证消息正在工作。但是,当我更正不正确的输入并且控件失去焦点时,验证消息不会清除并且无效类仍保留在控件上。这是相关的视图代码

@model Project.CommentViewModel

@using (Html.BeginForm())
{
    @Html.ValidationSummary(true);

    <div class="Comment">
        <div class="CommentInfo">
            Post New Comment:
        </div>
        <div class="CommentText">
            <div class="commentEdit ">
                @Html.TextAreaFor(x => x.CommentText, new { @class = "NewCommentTextBox" })
                @Html.ValidationMessageFor(x => x.CommentText)
            </div>
            @Html.HiddenFor(x => x.ProjectID)
        </div>
     </div>
}

和视图模型属性

[StringLength(50)]
public string CommentText { get; set; }

正如我之前提到的,一旦注释变得太长并且控件失去焦点,错误消息就会按预期出现。但是,当错误得到修复时,错误消息不会消失并且控件保持红色。我的 _Layout 页面以正确的顺序包含相关的脚本文件,并且我的配置文件的 appSetting 变量设置正确。知道出了什么问题或我应该在哪里寻找问题吗?非常感谢您的任何建议。

4

1 回答 1

0

解决了这个问题。页面上其他地方出现的 Telerik 网格似乎与验证发生冲突并破坏了它。使用网格手动注册 jquery 验证脚本解决了该问题。

@(Html.Telerik().ScriptRegistrar().DefaultGroup(group =>                   
                group.Add("jquery.validate.js").Add("jquery.validate.unobtrusive.js")))

我认为他们可能已经使用较新版本的 Telerik 库解决了这个特定问题。

于 2011-08-24T13:29:21.963 回答