Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax MVC3格式验证消息_Ajax_Asp.net Mvc 3_Asp.net Ajax - Fatal编程技术网

Ajax MVC3格式验证消息

Ajax MVC3格式验证消息,ajax,asp.net-mvc-3,asp.net-ajax,Ajax,Asp.net Mvc 3,Asp.net Ajax,我使用的表单布局每行有4个输入字段,因此我需要找到一种不同的方式来显示验证消息。我想我可以在表单上方显示任何消息,但希望添加边框和背景色 我使用不引人注目的JS进行验证 是否有方法检测视图中是否存在验证错误 示例 @using (Ajax.BeginForm("ProcessContactInfo", ajaxOpts)) { @Html.ValidationSummary(true) if (!ViewData.ModelState.IsVali

我使用的表单布局每行有4个输入字段,因此我需要找到一种不同的方式来显示验证消息。我想我可以在表单上方显示任何消息,但希望添加边框和背景色

我使用不引人注目的JS进行验证

是否有方法检测视图中是否存在验证错误

示例

 @using (Ajax.BeginForm("ProcessContactInfo", ajaxOpts))
    {
         @Html.ValidationSummary(true)
          if (!ViewData.ModelState.IsValid)//does nothing because using unobtrusiveJS validation
          {
         <div id="ValidationResultsArea" style="padding:20px; border: 1px solid #000000; background-color: #ffffcc; display: none" >
            @Html.ValidationMessageFor(model => model.Contact.FirstName)<br />
            @Html.ValidationMessageFor(model => model.Contact.LastName)<br />
            @Html.ValidationMessageFor(model => model.Contact.Email)<br />
            @Html.ValidationMessageFor(model => model.Contact.Message)<br /> 
         </div> 
         }
         <p><span class="required">&#42; All fields are required.</span></p>
}
@使用(Ajax.BeginForm(“ProcessContactInfo”,ajaxOpts))
{
@Html.ValidationSummary(true)
如果(!ViewData.ModelState.IsValid)//由于使用不引人注目的JS验证而不执行任何操作
{
@Html.ValidationMessageFor(model=>model.Contact.FirstName)
@Html.ValidationMessageFor(model=>model.Contact.LastName)
@Html.ValidationMessageFor(model=>model.Contact.Email)
@Html.ValidationMessageFor(model=>model.Contact.Message)
} *;所有字段都是必填字段

}
看起来您正在寻找类似的东西

如果这就是您想要的,那么如果您使用MVC3和jquery验证,就可以轻松实现它。jQuery验证使用自定义数据属性、css和不引人注目的javascript来执行用户输入验证,因此,当特定输入字段的验证失败时,jQuery“注入”数据属性和css类,然后您可以利用这一点,使用css定义希望字段的外观。这是属于上面截图的HTML

    <div class="editor-label">
        <label for="UserName" style="display: none;">User name</label>
    </div>
    <div class="editor-field">
        <span class="field-validation-error" data-valmsg-for="UserName" data-valmsg-replace="true">The User name field is required.</span>
        <input class="input-validation-error" data-val="true" data-val-required="The User name field is required." id="UserName" name="UserName" placeholder="Username" type="text" value="">
    </div>

    <div class="editor-label">
        <label for="Password" style="display: none;">Password</label>
    </div>
    <div class="editor-field">
        <span class="field-validation-error" data-valmsg-for="Password" data-valmsg-replace="true">The Password field is required.</span>
        <input class="input-validation-error" data-val="true" data-val-required="The Password field is required." id="Password" name="Password" placeholder="Password" type="password">
    </div>

    <div class="editor-label">
        <input data-val="true" data-val-required="The Remember me? field is required." id="RememberMe" name="RememberMe" type="checkbox" value="true"><input name="RememberMe" type="hidden" value="false"> Remember Me
    </div>

    <p>
        <input type="submit" value="Log On">
    </p>

用户名
用户名字段是必需的。
密码
密码字段是必需的。
记得我吗


您可以看到jQuery验证框架向用户名输入字段添加了一个类(输入验证错误)。您可以在项目中指定重写此css类。

这与我的要求不完全一样,但它让我以不同的方式思考了这个问题,因此感谢您的详细回答。