asp.net-mvc – Ajax.BeginForm和验证
发布时间:2020-09-25 05:30:52 所属栏目:asp.Net 来源:互联网
导读:客户端验证在Ajax.BeginForm中对我不起作用 这是我的代码: div id=report div id=projectReport div @{ Html.EnableClientValidation(); } @using (Ajax.
|
客户端验证在Ajax.BeginForm中对我不起作用 这是我的代码: <div id="report">
<div id="projectReport">
<div >
@{
Html.EnableClientValidation();
}
@using (Ajax.BeginForm("AnalyticsDates",new AjaxOptions
{
InsertionMode = InsertionMode.Replace,UpdateTargetId = "reportContent"
}))
{
@Html.LabelFor(m => m.StartDate)
@Html.TextBoxFor(m => m.StartDate,new { id = "start" })
@Html.ValidationMessageFor(model => model.StartDate)
@Html.LabelFor(m => m.EndDate)
@Html.TextBoxFor(m => m.EndDate,new { id = "end" })
@Html.ValidationMessageFor(model => model.EndDate)
<input id="btnsearch" type="submit" value=@Titles.Search class="iconHeader"/>
}
</div>
</div>
<div id="reportContent">
</div>
</div>
我在web.config页面中启用了验证: <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 并添加了js文件 <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
第二个问题与第一个相关, [HttpPost]
[Authorize(Roles = "XXXReport")]
public async Task<ActionResult> AnalyticsDates(ReportRequestVM reportRequestVM)
{
if (!ModelState.IsValid)
{
return View("**MainReports**",reportRequestVM);
}
// fill reportRequestVM with data
return View("**PartialReport**",reportRequestVM);
}
如果模型有效,我返回一个局部视图,页面看起来很好,否则我返回主视图,使用表单,但在此页面呈现自己两次.问题是,如果客户端验证失败,如何返回带有验证错误的主窗体? 任何帮助,将不胜感激, 解决方法我想到了…你应该对结果和查询有部分的看法. 如果失败,您应该返回“http错误请求”并使用以下内容在搜索部分视图上设置验证. 这是它应该看起来的样子: @using (Ajax.BeginForm("CloudAnalyticsDates",new AjaxOptions
{
InsertionMode = InsertionMode.Replace,UpdateTargetId = "reportContent",OnFailure = "OnCloudAnalyticsFailure",OnBegin = "ValidateForm",}))
{
@Html.LabelFor(m => m.StartDate)
@Html.TextBoxFor(m => m.StartDate,new { id = "start" })
@Html.ValidationMessageFor(model => model.StartDate)
@Html.LabelFor(m => m.EndDate)
@Html.TextBoxFor(m => m.EndDate,new { id = "end" })
@Html.ValidationMessageFor(model => model.EndDate)
<input id="btnsearch" type="submit" value=@Titles.Search class="iconHeader"/>
}
</div>
</div>
<script type="text/javascript">
$(document).ready(function () {
$("#datePicker").kendoDatePicker();
$("#start").kendoDatePicker().data("kendoDatePicker");
$("#end").kendoDatePicker().data("kendoDatePicker");
});
function OnCloudAnalyticsFailure(parameters) {
$('#projectReport').html(parameters.responseText);
$('#reportContent').empty();
CleanValidationError('form');
}
</script>
并在服务器上它应该看起来像: [HttpPost]
public async Task<ActionResult> CloudAnalyticsDates(ReportRequestVM reportRequestVM)
{
if (!ModelState.IsValid)
{
Response.StatusCode = (int)HttpStatusCode.BadRequest;
return PartialView("_ReportQuery",reportRequestVM);
}
reportRequestVM.BomTotals = await CommonRequestsHelper.GetBomTotalAnalytics(bomTotalRequest);
return PartialView("_ProjectReport",reportRequestVM);
} (编辑:长春站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 按钮属性: – commandName和CommandArguments
- asp.net – IIS 404自定义错误不能按预期工作
- asp.net-mvc – 可以浏览DataAnnotations的自定义Html帮助器
- ASP.NET汉字转拼音 - 输入汉字获取其拼音的具体实现
- asp.net – 渗透测试人员说.ASPXAUTH cookie是不安全的并且
- Autofac和ASP.NET Web API ApiController
- 在asp.net mvc2项目中不需要MS脚本的JQuery验证
- asp.net-mvc – 奇怪的错误w / NinjectValidatorFactory更新
- asp.net-mvc – 带有lambda表达式的ASP.net MVC Action URL
- C# 中的委托和事件 [转载]
推荐文章
站长推荐
- asp.net – 有人有一种方法来保持页面呈现一旦一
- asp.net-mvc – ASP.NET MVC – Partial View可以
- asp.net – 是否可以根据用户角色隐藏/显示Kendo
- asp.net – NHibernate – ManagedWebSessionCon
- ASP.Net Web应用程序安全性不适用于IIS 7?
- 在ASP.Net中防止SQL注入
- asp.net – Web Forms MVP项目有哪些好的资源?
- 过滤ASP.NET Core API中的属性
- asp.net-mvc – 有什么技巧/技巧使用亚音速与Asp
- asp.net-core – 在Visual Studio CTP2中的ASP.V
热点阅读
