首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ASP.NET MVC -表单提交后弹出的更新模式

ASP.NET MVC -表单提交后弹出的更新模式
EN

Stack Overflow用户
提问于 2021-07-07 02:42:41
回答 1查看 415关注 0票数 0

我有包含部分视图的模式弹出窗口。这个局部视图只是一种形式。我必须在表单提交后用新的局部视图更新/刷新相同的模式弹出窗口,而不是用新的视图重新加载主页(刷新浏览器)。

所以我希望所有的流程都在相同的模式弹出窗口中,像-创建员工-提交点击->按顺序创建员工联系人等,这里员工和员工联系人被用作部分视图。

下面是表格-

代码语言:javascript
复制
@using (Html.BeginForm("EmployeeDetails", "Employee", new { source = string.IsNullOrEmpty(ViewBag.source)? "": @ViewBag.source  }, FormMethod.Post, new { @class = "employee-details" }))
{
  //submit button
}

下面是post方法-

代码语言:javascript
复制
public async Task<ActionResult> EmployeeDetails(EmployeeViewModel model, string source = "")
{
   // save code
   // after save, I have to return below view as partial view in same modal popup
 return RedirectToAction("EmployeeContact", "Employee", new { employeeId = model.Employee.ID });
}

我也尝试过使用PartialView语法,但表现也是一样的(重新加载浏览器)-

代码语言:javascript
复制
return PartialView("~/Views/Employee/EmployeeContact.cshtml", new { employeeId = model.Employee.ID });

我错过了什么?

EN

回答 1

Stack Overflow用户

发布于 2021-07-13 23:21:12

我使用DOMParser解析html解决了这个问题。我使用了DOMParser,并在ajax成功块之后提取了html中可用的外部js文件。我从另一个堆栈溢出链接得到的所有帮助-

DOM Parser

下面是我的代码-

代码语言:javascript
复制
function createGetScriptCallback(url) {
          return function () {
            return $.getScript(url);
          }
        }


var form = $(this);
                $.ajax({
                    url: form.attr("action"),
                    method: form.attr("method"),  // post
                    data: form.serialize(),
                    success: function (result) {
                        
        
                        var parser, doc, scriptsEl, callbacks;
                        parser = new DOMParser();
                        doc = parser.parseFromString(result, "text/html")
                        scriptsEl = doc.querySelectorAll("script[src]");
                        callbacks = []
                        for (var i = 0; i < scriptsEl.length; i++) {
                            callbacks.push(createGetScriptCallback(scriptsEl[i].getAttribute("src")));
                        }
                        $.when.apply($, callbacks)
                            .fail(function (xhr, status, err) {
                                console.error(status, err);
                            });
                        //$('body').append(result);
                    
        
                        $("body #EmployeeModal .modal-body").empty();
                        $("body #EmployeeModal .modal-body").append(result);
                        
        
                        $.validator.unobtrusive.parse("form");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68275903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档