代码之家  ›  专栏  ›  技术社区  ›  LeftyX

对多个表单启用ClientValidation

  •  0
  • LeftyX  · 技术社区  · 14 年前

    我发现这个很棒 example

    方法使用默认表单名称“form0”注入客户端脚本,不支持任何其他名称。
    下面是我要做的代码示例:

    <%=Html.ValidationSummaryJQuery("Please fix these errors.", "id", "BPValidationID")%>
    <% Html.EnableClientValidation()%>
    <%  Using (Html.BeginForm("Edit", "Home", New With {.Id = Model.Code}, FormMethod.Post, New With {.id = "EditForm"}))%>
            <% ViewContext.FormContext.ValidationSummaryId = "BPValidationID"%>
            <%=Html.AntiForgeryToken("AF-BP-SPED-token")%>
        <fieldset>
            <legend>Fields</legend>
            <div class="editor-label">
                <%=Html.LabelFor(Function(m) m.Name)%>
            </div>
            <div class="editor-field">
                <%=Html.TextBoxFor(Function(m) m.Name)%>
                <%=Html.ValidationMessageFor(Function(m) m.Name, "*")%>
            </div>
            <p>
                <input type="submit" name="submitButton" value="Save" />
            </p>
        </fieldset>            
        <%End Using%>
    

    谢谢你的帮助,

    2 回复  |  直到 14 年前
        1
  •  1
  •   Craig Stuntz    14 年前

    我想你是指形式 id name s、 不管怎样, EnableClientValidation 与自定义窗体配合良好 身份证件

    这是真实的工作代码:

    <% Html.EnableClientValidation(); %> 
    <% using (Html.BeginForm(null, 
                             null, 
                             new RouteValueDictionary{{ "Id", Html.ModelId() }, { "ReturnUrl", ViewData.Eval("ReturnUrl") }}, 
                             FormMethod.Post, 
                             new Dictionary<string, object> { { "id", "editForm" } })) { %>
        <div id="row1">
            <%: Html.EditorForModel() %>
        </div>
    

    呈现的形式是:

    <form action="/Snipped/Url" id="editForm" method="post">
        <div id="row1">
            <input ...
    
        2
  •  0
  •   LeftyX    14 年前

    我已经更改了扩展方法ValidationSummaryJQuery;这个方法现在接收的是一个对象而不是一个IDictionary。