Ajax MVC3格式验证消息
我使用的表单布局每行有4个输入字段,因此我需要找到一种不同的方式来显示验证消息。我想我可以在表单上方显示任何消息,但希望添加边框和背景色 我使用不引人注目的JS进行验证 是否有方法检测视图中是否存在验证错误 示例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
@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">* 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类。这与我的要求不完全一样,但它让我以不同的方式思考了这个问题,因此感谢您的详细回答。