ASP.NET MVC 3验证问题

时间:2011-09-09 21:49:15

标签: asp.net-mvc validation

我有2个或更多表单,其中包含不同的隐藏值,如:

    <div class="comment-body">
        <% using (Html.BeginForm(Model.ActionName, "Home", Model.RouteValues, FormMethod.Post, new { id = "FormAddComment", name = "FormAddComment" }))
           { %>
        <% = Html.ValidationSummary(false) %>
        <fieldset>
            <% if (Model.CommentParentID != null)
               {
                   htmlAttributes = new { placeholder = "Add a reply...", id = "Comment" };
                   postButtonTitle = "Post Reply";
            %>
            <input type="hidden" name="CommentParentID" id="CommentParentID" value="<% = Model.CommentParentID.ToString() %>" />
            <%} %>
            <% = Html.TextAreaFor(model => model.Comment, htmlAttributes)%>
            <% = Html.ValidationMessageFor(model=>model.Comment) %>
            <input type="submit" value="<% = postButtonTitle %>" class="small blue awesome noborder"
                border="0" />
            <% if (Model.CommentParentID != null)
               {%>
            <a class="hide-sub-comment" href="javascript:void(0);">Cancel</a>
            <%} %>
        </fieldset>
        <%} %>
    </div>

问题是当我尝试验证输入的值时,我得到了两次验证器消息。当我添加文本并再次单击“发布”时 - 隐藏了一个验证器,但页面尚未生效。为什么以及如何解决它? 感谢

1 个答案:

答案 0 :(得分:0)

自您更改问题后修改答案。

你可以做这样的事情

<script type="text/javascript">
    $(document).ready(function () {            
        $("#NotHiddenComment").change(function () {
            var temp = $("#NotHiddenComment").val();
            $("#HiddenCommentID").text(temp);
        });
    });
</script>

这将确保两个字段具有相同的值,因此您不会收到验证错误。