asp.net-mvc – 在父视图顶部的Jquery模态弹出窗口中渲染局部视
发布时间:2020-12-15 18:54:21 所属栏目:asp.Net 来源:网络整理
导读:我在父视图的顶部渲染局部视图如下按钮单击: $('.AddUser').on('click',function () {$("#AddUserForm").dialog({ autoOpen: true,position: { my: "center",at: "top+350",of: window },width: 1000,resizable: false,title: 'Add User Form',modal: true,
我在父视图的顶部渲染局部视图如下按钮单击:
$('.AddUser').on('click',function () { $("#AddUserForm").dialog({ autoOpen: true,position: { my: "center",at: "top+350",of: window },width: 1000,resizable: false,title: 'Add User Form',modal: true,open: function () { $(this).load('@Url.Action("AddUserAction","UserController")'); } }); }); 当用户点击AddUser按钮我给一个jquery模态弹出,部分视图呈现在它。但是当用户点击保存部分视图时,我将输入的信息保存到数据库中。但我必须在父视图上再次显示弹出来添加另一个用户,直到他们点击取消。请帮助我如何加载部分视图在父视图的顶部。 谢谢 解决方法
我建议你创建一个jquery ajax函数来过帐表单数据,然后使用回调函数来清除表单数据。这样,除非用户单击取消按钮,对话框总是显示。
见下面的例子: 主视图 <button class="AddUser">Add User</button> <div id="AddUserForm"></div> 部分视图(AddUserPartialView) @model Demo.Models.AddUserViewModel <form id="myForm"> <div id="AddUserForm"> @Html.LabelFor(m => m.Name) @Html.TextBoxFor(m => m.Name) </div> </form> Js文件 $('.AddUser').on('click',function () { $("#AddUserForm").dialog({ autoOpen: true,open: function () { $(this).load('@Url.Action("AddUserPartialView","Home")'); },buttons: { "Add User": function () { addUserInfo(); },Cancel: function () { $(this).dialog("close"); } } }); return false; }); function addUserInfo() { $.ajax({ url: '@Url.Action("AddUserInfo","Home")',type: 'POST',data: $("#myForm").serialize(),success: function(data) { if (data) { $(':input','#myForm') .not(':button,:submit,:reset,:hidden') .val('') .removeAttr('checked') .removeAttr('selected'); } } }); } 行动 public PartialViewResult AddUserPartialView() { return PartialView("AddUserPartialView",new AddUserViewModel()); } [HttpPost] public JsonResult AddUserInfo(AddUserViewModel model) { bool isSuccess = true; if (ModelState.IsValid) { //isSuccess = Save data here return boolean } return Json(isSuccess); } 更新 如果要在保存数据时出现错误时显示错误消息,可以按如下所示更改AddUserInfo操作中的Json结果: [HttpPost] public JsonResult AddUserInfo(AddUserViewModel model) { bool isSuccess = false; if (ModelState.IsValid) { //isSuccess = Save data here return boolean } return Json(new { result = isSuccess,responseText = "Something wrong!" }); } 然后在局部视图中添加一个div元素: @model MyParatialView.Controllers.HomeController.AddUserViewModel <div id="showErrorMessage"></div> <form id="myForm"> <div id="AddUserForm"> @Html.LabelFor(m => m.Name) @Html.TextBoxFor(m => m.Name) </div> </form> 最后,addUserInfo的JS函数应该是这样的: function addUserInfo() { $.ajax({ url: '@Url.Action("AddUserInfo",success: function (data) { if (data.result) { $(':input','#myForm') .not(':button,:hidden') .val('') .removeAttr('checked') .removeAttr('selected'); } else { $("#showErrorMessage").append(data.responseText); } } }); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 如何标签(设置标题)为IIS Express过程?
- asp.net – 使用字符串列表绑定GridView
- asp.net – VirtualPathUtility.ToAbsolute()VS. Url.Conte
- Asp.net MVC企业级开发(02)---Log4net
- asp.net-mvc – 使用嵌套显示模板时如何防止Razor向输入添加
- asp.net-mvc-3 – ASP.NET MVC视图模型不绑定在HTTP Post与
- VS2015如何创建单元测试并启动调试
- ASP.NET Web API为单个路由定制IHttpControllerSelector
- asp.net-mvc-2 – 是asp.net MVC2包括在.net 4.0框架?
- 如何使用asp.net在负载均衡机上获取访问者IP
推荐文章
站长推荐
热点阅读