Jquery 当在视图中访问时,ModelState.IsValid始终为true
通过以下操作,我得到了Jquery 当在视图中访问时,ModelState.IsValid始终为true,jquery,asp.net-mvc,unobtrusive-validation,Jquery,Asp.net Mvc,Unobtrusive Validation,通过以下操作,我得到了ModelState.IsValidins jquery代码。但这总是真的,我可以在我的页面上看到错误。 我试图实现的是在提交表单时显示加载。我使用了onclick提交事件。即使页面上存在验证错误,也会显示加载。我不想在这种情况下显示加载。我还尝试使用表单的提交事件,但结果相同 我的ViewModel具有用于验证的DataAnnotations,表单位于局部视图中。有什么建议可以让我成功地实现这个加载消息吗 这是我的表格 @using (Html.BeginForm("In
ModelState.IsValid
ins jquery代码。但这总是真的,我可以在我的页面上看到错误。
我试图实现的是在提交表单时显示加载。我使用了onclick
提交事件。即使页面上存在验证错误,也会显示加载。我不想在这种情况下显示加载。我还尝试使用表单
的提交
事件,但结果相同
我的ViewModel
具有用于验证的DataAnnotations
,表单位于局部视图中。有什么建议可以让我成功地实现这个加载消息吗
这是我的表格
@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { @id = "frmFlightSearch", onsubmit = "CheckModalErros()" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(false)
......
<div class="row" style="margin-bottom:10px;margin-top:10px;">
<div class="col-lg-3 pull-right">
<div class="form-group-sm">
<button id="btnSubmit" type="submit" class="btn btn-sm btn-primary pull-right">
Search Flights
<span class="glyphicon glyphicon-plane"></span>
</button>
</div>
</div>
</div>
}
@使用(Html.BeginForm(“Index”,“Home”,FormMethod.Post,new{@id=“frmFlightSearch”,onsubmit=“CheckModalErros()”}))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(false)
......
搜索航班
}
如果使用ajax调用使用部分视图加载表单,请在成功回调中执行以下操作:
$.ajax({
success: function(data){
$('#DivId').html(data);
$.validator.unobtrusive.parse($("#FormId"));
}
});
这将解析表单的验证,当您单击submit(提交)和model(模型)无效时,表单将显示验证消息
希望这有帮助
编辑:
正如您在单击时所说,您需要检查以下代码行:
if($('#FormId).Valid())
{
$('#Loader').show(); //show loader if form is valid.
}
else
{
e.preventDefault(); // prevent default event if form is not valid.
}
如果使用ajax调用使用部分视图加载表单,请在成功回调中执行以下操作:
$.ajax({
success: function(data){
$('#DivId').html(data);
$.validator.unobtrusive.parse($("#FormId"));
}
});
这将解析表单的验证,当您单击submit(提交)和model(模型)无效时,表单将显示验证消息
希望这有帮助
编辑:
正如您在单击时所说,您需要检查以下代码行:
if($('#FormId).Valid())
{
$('#Loader').show(); //show loader if form is valid.
}
else
{
e.preventDefault(); // prevent default event if form is not valid.
}
如果使用ajax调用使用部分视图加载表单,请在成功回调中执行以下操作:
$.ajax({
success: function(data){
$('#DivId').html(data);
$.validator.unobtrusive.parse($("#FormId"));
}
});
这将解析表单的验证,当您单击submit(提交)和model(模型)无效时,表单将显示验证消息
希望这有帮助
编辑:
正如您在单击时所说,您需要检查以下代码行:
if($('#FormId).Valid())
{
$('#Loader').show(); //show loader if form is valid.
}
else
{
e.preventDefault(); // prevent default event if form is not valid.
}
如果使用ajax调用使用部分视图加载表单,请在成功回调中执行以下操作:
$.ajax({
success: function(data){
$('#DivId').html(data);
$.validator.unobtrusive.parse($("#FormId"));
}
});
这将解析表单的验证,当您单击submit(提交)和model(模型)无效时,表单将显示验证消息
希望这有帮助
编辑:
正如您在单击时所说,您需要检查以下代码行:
if($('#FormId).Valid())
{
$('#Loader').show(); //show loader if form is valid.
}
else
{
e.preventDefault(); // prevent default event if form is not valid.
}
即使页面上存在验证错误,也会显示加载。我不想在这种情况下显示加载
添加此事件处理程序:
$("#frmFlightSearch").bind("invalid-form.validate", function () {
// hide 'loading'
});
这将在客户端验证失败时触发,您可以隐藏为“加载”进度显示的内容
如果客户端验证失败,那么它无论如何也不会发布(使用asp.NETMVC+jquery验证)
即使页面上存在验证错误,也会显示加载。我不想在这种情况下显示加载
添加此事件处理程序:
$("#frmFlightSearch").bind("invalid-form.validate", function () {
// hide 'loading'
});
这将在客户端验证失败时触发,您可以隐藏为“加载”进度显示的内容
如果客户端验证失败,那么它无论如何也不会发布(使用asp.NETMVC+jquery验证)
即使页面上存在验证错误,也会显示加载。我不想在这种情况下显示加载
添加此事件处理程序:
$("#frmFlightSearch").bind("invalid-form.validate", function () {
// hide 'loading'
});
这将在客户端验证失败时触发,您可以隐藏为“加载”进度显示的内容
如果客户端验证失败,那么它无论如何也不会发布(使用asp.NETMVC+jquery验证)
即使页面上存在验证错误,也会显示加载。我不想在这种情况下显示加载
添加此事件处理程序:
$("#frmFlightSearch").bind("invalid-form.validate", function () {
// hide 'loading'
});
这将在客户端验证失败时触发,您可以隐藏为“加载”进度显示的内容
如果客户端验证失败,则无论如何都不会发布(使用asp.net mvc+jquery验证).实际上表单是通过post操作提交的,而不是ajaxForm在页面加载时加载?实际上表单是通过post操作提交的,而不是ajaxForm在页面加载时加载?实际上表单是通过post操作提交的,而不是ajaxForm在页面加载时加载?实际上表单是通过post操作提交的,而不是ajaxForm在页面加载时加载?谢谢兄弟,这正是我所需要的出于好奇为什么总是这样@Html.Raw(Json.Encode(ViewData.ModelState.IsValid))`它不是。第一次加载视图时为
true
,并且在服务器端post操作返回更新后的视图之前保持为true-它不会随着客户端验证而更改,因为没有服务器端代码。如果服务器端代码没有添加手动ModelState.addmodeleror
,并且仅使用客户端已检查的[必需]
(etc)属性,则不会出现任何服务器端错误(因为它无论如何都不会发布到服务器端),因此它看起来是真的。通过在post操作的最顶端添加ModelState.AddModelError(“,”这是一个测试“)进行测试谢谢兄弟这正是我所需要的出于好奇为什么这总是真的@Html.Raw(Json.Encode(ViewData.ModelState.IsValid))`它不是。第一次加载视图时为true
,并且在服务器端post操作返回更新后的视图之前保持为true-它不会随着客户端验证而更改,因为没有服务器端代码。如果服务器端代码没有添加手动ModelState.addmodeleror
,并且仅使用客户端已检查的[必需]
(etc)属性,则不会出现任何服务器端错误(因为它无论如何都不会发布到服务器端),因此它看起来是真的。通过在post操作的最顶端添加ModelState.AddModelError(“,”这是一个测试“)进行测试谢谢兄弟这正是我需要的