首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用JavaScript/jQuery重定向到ASP.NET MVC中的另一个页面

使用JavaScript/jQuery重定向到ASP.NET MVC中的另一个页面
EN

Stack Overflow用户
提问于 2011-11-16 16:24:41
回答 6查看 305.3K关注 0票数 74

我想在ASP.NET MVC3.0中使用JavaScript/jQuery/Ajax从一个页面重定向到另一个页面。在按钮单击事件上,我编写了如下所示的JavaScript代码。

代码语言:javascript
复制
function foo(id)
{
    $.post('/Branch/Details/' + id);
}

我的控制器代码是这样的:

代码语言:javascript
复制
public ViewResult Details(Guid id)
{
     Branch branch = db.Branches.Single(b => b.Id == id);
     return View(branch);
}

当我单击一个按钮时,它正在调用BranchController中的Details操作,但它不会返回到Details视图。

我没有收到任何错误或异常。它在Firebug中显示状态为200 OK。我的代码中有什么错误,我如何重定向到详细信息视图页面?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-11-16 16:27:00

您没有在$.post AJAX调用中订阅任何成功回调。这意味着请求会被执行,但您不会对结果做任何操作。如果您想对结果做一些有用的事情,请尝试:

代码语言:javascript
复制
$.post('/Branch/Details/' + id, function(result) {
    // Do something with the result like for example inject it into
    // some placeholder and update the DOM.
    // This obviously assumes that your controller action returns
    // a partial view otherwise you will break your markup
});

另一方面,如果你想重定向,你绝对不需要AJAX。只有当您希望停留在同一页面上并只更新页面的一部分时,才使用AJAX。

因此,如果您只想重定向浏览器:

代码语言:javascript
复制
function foo(id) {
    window.location.href = '/Branch/Details/' + id;
}

顺便说一句:你永远不应该像这样硬编码urls。在处理ASP.NET MVC应用程序中的url时,您应该始终使用url助手。所以:

代码语言:javascript
复制
function foo(id) {
    var url = '@Url.Action("Details", "Branch", new { id = "__id__" })';
    window.location.href = url.replace('__id__', id);
}
票数 158
EN

Stack Overflow用户

发布于 2012-10-17 14:54:54

这可以通过在视图中使用隐藏变量,然后使用该变量从JavaScript代码进行post来完成。

以下是我在视图中的代码

代码语言:javascript
复制
@Html.Hidden("RedirectTo", Url.Action("ActionName", "ControllerName"));

现在可以在JavaScript文件中使用它,如下所示:

代码语言:javascript
复制
 var url = $("#RedirectTo").val();
 location.href = url;

它对我来说就像是一种魔力。我希望这对你也有帮助。

票数 45
EN

Stack Overflow用户

发布于 2011-11-16 16:31:43

您可以使用:

代码语言:javascript
复制
window.location.href = '/Branch/Details/' + id;

但是如果没有成功或错误的函数,您的Ajax代码是不完整的。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8148632

复制
相关文章

相似问题

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