如何从ajax调用中调用另一个视图?

时间:2015-12-21 16:00:55

标签: asp.net-mvc-4

_layout我有一个button,我已将其与click事件相关联。 click事件会调用将返回完整view的操作。我想要做的是将这个返回view作为新页面加载到浏览器。怎么做?

1 个答案:

答案 0 :(得分:1)

您可以使用window.open在新标签/浏览器窗口中打开新页面。

$(function(){

  $("#idOfYourLink").click(function(e){
    e.preventDefault();
    var url=$(this).attr("href");
    window.open(url);
  });

});

如果是按钮,请将目标网址保留在HTML 5数据属性中。

<button id="btn1" data-url="@Url.Action("MyProfile","Home")">Profile</button>

在点击事件中,读取数据属性

$(function () {
    $("#btn1").click(function (e) {
        e.preventDefault();
        var url = $(this).data("url");
        window.open(url);
    });
})

如果要在不打开新选项卡的情况下通过ajax更新相同的页面内容,可以使用jQuery load()方法来执行此操作。将您的@RenderBody方法调用包含在div中。

<div id="pageContent">
    @RenderBody()
</div>
<button id="btn1" data-url="@Url.Action("MyProfile","Home")">Profile</button>

单击该按钮后,将新操作方法的HTML加载到pageContent div。

$(function () {
    $("#btn1").click(function (e) {
        e.preventDefault();
        var url = $(this).data("url");
        $("#pageContent").load(url);
    });
})