ASP.NET MVC下Ajax.BeginForm方式无刷新提交表单实例
发布时间:2021-01-12 10:33:55 所属栏目:asp.Net 来源:互联网
导读:有时候,不得不考虑到以下场景问题:数据库表字段会频繁更改扩展,而流行的重业务的js框架过于依赖json数据接口,导致的问题是,数据库表更改-数据接口更改-前段框架逻辑更改。。。
有时候,不得不考虑到以下场景问题: 数据库表字段会频繁更改扩展,而流行的重业务的js框架过于依赖json数据接口,导致的问题是,数据库表更改 -> 数据接口更改 -> 前段框架逻辑更改。。。 一不小心就陷入坑坑洼洼。 这样的话,原来纯ASP.NET MVC绑定的方式,还是可以一用的,因为该方式不用再为那么多js代码烦恼。 不好意思,前面自说自话啊,直接上干货代码了―――― Ajax.BeginForm @{ Layout = null; var ajaxOptions = new AjaxOptions { UpdateTargetId = "updateHolder",OnBegin = "DeliverableEdit.onBegin",OnFailure = "DeliverableEdit.onFailure",OnSuccess = "DeliverableEdit.onSuccess",OnComplete = "DeliverableEdit.onComplete",HttpMethod = "Post" }; } @using ( Ajax.BeginForm("Save","DesignDeliverable",null,ajaxOptions,new { @class = "form-horizontal",id = "editForm" }) ) { @Html.HiddenFor(x => x.Id) @Html.HiddenFor(x => x.TaskCode) @Html.HiddenFor(x => x.ShortName) <div class="container-fluid pad-15"> <div class="row"> <div class="col-xs-6"> <div id="updateHolder" style="display:none;"></div> <div class="form-group"> <label class="col-sm-2 control-label">Title</label> <div class="col-sm-4"> @Html.TextBoxFor(x => x.Name,new { @class = "form-control",placeholder = "Title" }) @Html.ValidationMessageFor(x => x.Name) </div> <label class="col-sm-2 control-label">Type</label> <div class="col-sm-4"> @Html.DropDownListFor(x => x.DeliverableType,new List<SelectListItem> { new SelectListItem { Text = "Type 1",Value = "1" },new SelectListItem { Text = "Type 2",Value = "2" },new SelectListItem { Text = "Type 3",Value = "3" },new SelectListItem { Text = "Type 4",Value = "4" },new SelectListItem { Text = "Type 5",Value = "5" },},new { @class = "form-control" }) </div> </div> <div class="form-group"> <label class="col-sm-2 control-label">Description</label> <div class="col-sm-10"> @Html.TextAreaFor(x => x.Description,rows = 4 }) </div> </div> <div class="form-group" style="margin-bottom: 3px;"> <div class="col-sm-2 col-sm-offset-10"> Weight </div> </div> <div class="form-group"> <label class="col-sm-2 control-label">Phase</label> <div class="col-sm-3"> @Html.DropDownListFor(x => x.Phase,new List<SelectListItem> { new SelectListItem { Text = "Phase 1",new SelectListItem { Text = "Phase 2",new SelectListItem { Text = "Phase 3",new SelectListItem { Text = "Phase 4",new SelectListItem { Text = "Phase 5",new { @class = "form-control" }) </div> <label class="col-sm-2 control-label">First</label> <div class="col-sm-3"> <input class="form-control" type="text" placeholder="" /> </div> <div class="col-sm-2"> <input class="form-control" type="text" placeholder="Weight" /> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label">Detail</label> <div class="col-sm-3"> @Html.TextBoxFor(x => x.Detail,placeholder = "Detail" }) @Html.ValidationMessageFor(x => x.Detail) </div> <label class="col-sm-2 control-label">Second</label> <div class="col-sm-3"> <input class="form-control" type="text" placeholder="" /> </div> <div class="col-sm-2"> <input class="form-control" type="text" placeholder="Weight" /> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label">Size</label> <div class="col-sm-3"> @Html.TextBoxFor(x => x.Size,placeholder = "Size" }) </div> <label class="col-sm-2 control-label">Third</label> <div class="col-sm-3"> <input class="form-control" type="text" placeholder="" /> </div> <div class="col-sm-2"> <input class="form-control" type="text" placeholder="Weight" /> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label">WBS Code</label> <div class="col-sm-3"> @Html.TextBoxFor(x => x.WbsNumber,placeholder = "WBS Code" }) </div> <label class="col-sm-2 control-label">Fourth</label> <div class="col-sm-3"> <input class="form-control" type="text" placeholder="" /> </div> <div class="col-sm-2"> <input class="form-control" type="text" placeholder="Weight" /> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label">Room</label> <div class="col-sm-3"> @Html.DropDownListFor(x => x.RoomId,(ViewBag.Rooms as List<SelectListItem>),new { @class = "form-control" }) </div> <label class="col-sm-2 control-label">A Variance</label> <div class="col-sm-3"> <input class="form-control" type="text" placeholder="A Variance" /> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label">Area</label> <div class="col-sm-3"> @Html.DropDownListFor(x => x.AreaId,(ViewBag.Areas as List<SelectListItem>),new { @class = "form-control" }) </div> <label class="col-sm-2 control-label">B Variance</label> <div class="col-sm-3"> <input class="form-control" type="text" placeholder="B Variance" /> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label">Comments</label> <div class="col-sm-10"> <textarea class="form-control" rows="4"></textarea> </div> </div> </div> <div class="col-xs-6"> <div class="form-group"> <div class="col-sm-12"> <label class="control-label">Documents</label> <table class="table table-bordered table-hover table-condensed mt-10"> <thead> <tr> <th>File Name</th> <th>Revision</th> <th>Date</th> </tr> </thead> <tbody> <tr> <td>P-001.pdf</td> <td>01</td> <td>03/15/2017</td> </tr> </tbody> </table> </div> </div> </div> </div> </div> <div class="page_footer absolute-position"> <div class="page_footer_inner page_footer_light text-right"> @if ( Request["action"] != "View" ) { <button class="btn btn-primary" id="btnSave"><i class="fa fa-floppy-o fa-fw"></i> Save</button> } <button id="btnCancel" class="btn btn-default"><i class="fa fa-close fa-fw"></i> Close</button> </div> <span id="notification"></span> </div> } <script type="text/javascript"> var DeliverableEdit = DeliverableEdit || {}; (function (o) { o.timer = null; o.displayLoading = function (target) { var element = $(target); kendo.ui.progress(element,true); o.timer = setTimeout(function () { kendo.ui.progress(element,false); },50); }; o.hideLoading = function (target) { setTimeout(function () { clearTimeout(o.timer); },50); }; o.initializeValidation = function () { $.validator.setDefaults({ showErrors: function (errorMap,errorList) { $(".page_footer_inner button").removeProp("disabled","disabled"); // Clean up any tooltips for valid elements $.each(this.validElements(),function (index,element) { var $element = $(element); $element.data("title","") // Clear the title - there is no error associated anymore .removeClass("field-validation-error") .tooltip("destroy"); }); // Create new tooltips for invalid elements $.each(errorList,error) { var $element = $(error.element); $element.tooltip("destroy") // Destroy any pre-existing tooltip so we can repopulate with new tooltip content .data("title",error.message) .data("placement","bottom") .addClass("field-validation-error") .tooltip(); // Create a new tooltip based on the error messsage we just set in the title }); } }); $.validator.unobtrusive.parse($("#editForm")); }; o.showSuccess = function (msg) { $("#notification").data('kendoNotification').show(msg,"success"); }; o.showWarning = function (msg) { $("#notification").data('kendoNotification').show(msg,"warning"); }; // Events during the submit of Ajax.Form o.onBegin = function () { $(".page_footer_inner button").prop("disabled","disabled"); o.displayLoading($(".form-horizontal")); } o.onSuccess = function (data) { o.hideLoading(o.timer); if (!data || !data.code) { o.showWarning("Failure,please try it again."); return; } if (data && data.code) { gridView.refreshGrid(); o.showSuccess("Saved successfully."); setTimeout(function () { gridView.closeDeliverableDialog(); },500); } } o.onFailure = function (request,error) { o.hideLoading(o.timer); o.showWarning("Failure,please try it again."); } o.onComplete = function (request,status) { o.hideLoading(o.timer); $(".page_footer_inner button").removeProp("disabled","disabled"); } })(DeliverableEdit); $(function () { // To fix jquery.validation invalid issue DeliverableEdit.initializeValidation(); $("#btnCancel").click(function (e) { e.preventDefault(); gridView.closeDeliverableDialog(); }); $("#btnSave").click(function (e) { e.preventDefault(); $(".form-horizontal").submit(); $(".page_footer_inner button").prop("disabled","disabled"); }); $("#notification").kendoNotification({ position: { pinned: true,top: 15,left: '50%' },autoHideAfter: 1000 }); }); </script> (编辑:4S站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 在.NET MVC上启用Http PUT请求
- 部署DotNetNuke并将ASP.NET应用程序分开 – 可能的问题?
- asp.net-mvc-5 – 我需要在MVC Razor中编码属性值吗?
- asp.net-mvc – 值不能为空或为空.参数名称:contentPath
- asp.net – 如何在页面加载时以“添加新”模式进行编程设置
- 对asp.net网站进行基准测试,我可以使用jmeter吗?
- asp.net-mvc – 在没有模型的情况下手动将验证添加到文本框
- asp.net-mvc – 我可以获取html.HiddenFor / Html.Hidden创
- asp.net – 什么时候Response.IsClientConnected慢?
- asp.net-mvc – 在Controller操作方法中重用代码的最佳方法
推荐文章
站长推荐
- asp.net-mvc – 为什么在ASP.NET MVC中使用lambd
- asp.net-web-api – Web API / MVC 6中的安全JSO
- 在ASP.Net中防止SQL注入
- 所有我使用IO的动作都是异步的?
- 在asp.net App_Code目录中使用Nemerle
- asp.net – 如何在MVC 3中设置图表系列颜色?
- 认证 – WebApi ActionFilterAttribute,HttpActi
- asp.net-mvc – 是否有一个ASP MVC与JSTL标签等效
- asp.net-core – .NET Core SDK安装程序无法在Wi
- 在ASP.NET中,什么决定了HostingEnvironment.IsDe
热点阅读