【问题标题】:open view as modal in different view在不同视图中以模态形式打开视图
【发布时间】:2018-12-13 16:43:57
【问题描述】:

这里是场景。我有两种看法。 “contact.cshtml”和“xyz.cshtml”有两个不同的控制器。

在contact.cshtml 页面上,我有文本字段和一个按钮。一旦用户完成文本字段,单击“下一步”按钮,它应该转到控制器操作。(这是我使用 jquery ajax post 实现的)。 第二个控制器动作将返回一个局部视图(xyz.cshtml)。但我需要它作为contact.cshtml中的模态弹出窗口/窗口而无需重新加载页面。

我希望 xyz.cshtml 作为contact.cshtml 上的模式。

任何答案都将受到赞赏和支持。

contact.cshtml

<button type="button" onclick="next()" class="btn>next</button>`

function next(){
  $.post('secondcontroller/abcaction', {})
    .done(function() {})
    .fail(function(){})
}

第二个控制器

public ActionResult abcaction()   
{
  return View("xyz.cshtml");
}

xyz.cshtml 第二个控制器abcaction 视图

<div class="content">I'm partial view</div>

【问题讨论】:

    标签: c# jquery asp.net-mvc controller bootstrap-modal


    【解决方案1】:

    假设您正在使用引用 here 的引导模式,则您可能有一个用于模式数据的空 div。然后,您可以在该模式中传递从 AJAX 收到的响应并触发它显示。

        <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
              //placeholder for my modal data
        </div>

    还有你的 ajax 函数

    function next(){
      $.post('secondcontroller/abcaction', function(response){
          $("#myModal").html(response);
      })
        .done(function() {$("#myModal").modal("show");})
        .fail(function(){})
    }

    【讨论】:

    • abcaction 应该返回一个PartialView,是吗?否则将应用布局,这很少是意图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    相关资源
    最近更新 更多