asp.net-mvc – Ajax.BeginForm和验证
发布时间:2020-12-15 20:43:08 所属栏目:asp.Net 来源:网络整理
导读:客户端验证在Ajax.BeginForm中对我不起作用 这是我的代码: div id="report" div id="projectReport" div @{ Html.EnableClientValidation(); } @using (Ajax.BeginForm("AnalyticsDates",new AjaxOptions { InsertionMode = InsertionMode.Replace,UpdateTa
客户端验证在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 LinkBut??ton – 如何隐藏javascript_doPostBack?
- 如何从ASP .NET网站检测客户端上安装的Java运行时?
- 在ASP.NET MVC 3 Web应用程序项目之间共享视图
- asp.net-mvc-3 – MVC3 / Razor缩略图/调整大小图像想法?
- 在 ASP.NET Web API 中使用 Attribute 统一处理异常
- asp.net – ANT和WAR文件的.NET等价物?
- ASP.NET在Web应用程序中添加Razor页面而不是Web站点,没有MV
- asp-classic – ASP/VBScript – Int()vs CInt()
- asp.net-mvc-4 – 尝试在displaytemplate中访问父视图模型的
- asp.net – 隐藏字段vs viewstate
推荐文章
站长推荐
- asp.net-mvc – MVC中具有存储库/ DTO模式的实体
- asp.net-mvc-2 – 如何通过ASP.NET MVC 2.0中的t
- asp.net-mvc – 带Postgres的ASP.NET MVC; ORM建
- asp.net-mvc – “挑战”一词代表什么?
- asp-classic – 如何在VBScript中逐行读取CSV文件
- asp.net-mvc – Asp.net MVC NoSQL数据库
- asp.net-mvc – Telerik MVC Chart ClientEvents
- asp.net-mvc-3 – 如何使用Console.WriteLine在A
- asp.net-mvc – 阻止MVC控制器动作的后台工作者
- asp.net – 如何将网页转换为图像?
热点阅读