如何重定向到网址?

时间:2011-08-08 16:11:50

标签: asp.net-mvc-3 redirect

如何将查看器重定向到网址?

我注意到有人问How to redirect to another webpage in JavaScript/jQuery?,但我不确定应该去哪里。

我在控制器中尝试过:
window.location.replace("http://192.168.1.109/MWT/Taglist/ShowMap" + LastId);
并在视图中:

<% if (BreakCount >= 8) {  
    var url = "http://192.168.1.109/MWT/Taglist/ShowMap" + LastId;  
    window.location.replace(url);  
} %>  

这些都不奏效。在这两个地方window下面都有一条红色的波浪线,当我将鼠标悬停在它上面时,消息显示“当前上下文中不存在名称'窗口'。”

任何帮助都会非常赞赏!

= d

5 个答案:

答案 0 :(得分:70)

你的问题被标记为MVC 3,所以尽管列出了你的JavaScript示例,我仍会给你答案。在您的控制器类中使用以下代码:

public ActionResult MyAction()
{
    // Use this for an action
    return RedirectToAction("ActionName");
    // Use this for a URL
    return Redirect("http://192.168.1.109/MWT/Taglist/ShowMap" + LastId);
}

这是在服务器上发生的,这意味着客户端浏览器会收到重定向响应,浏览器可能会提交其他请求。如果您返回一个包含JavaScript的页面,则必须加载页面,运行JavaScript(假设它在客户端的浏览器上启用),加载下一页。除了其他问题之外,使用JavaScript意味着如果用户按下后退按钮,他们将被重复重定向到他们当前所在的页面。

答案 1 :(得分:6)

在控制器内部拨打return RedirectToAction()

public ActionResult MyAction() {

    return RedirectToAction("Index", "Home");
}

或者,你使用T4MVC(你应该; - ))

public ActionResult MyAction() {

    return RedirectToAction(MVC.Home.Index());
}

不要在视图中放置if语句 - 这不是MVC方式。控制器负责决定是否重定向到不同的视图。

答案 2 :(得分:4)

试试这样:

<script type="text/javascript">
    // Make sure the LastId variable is defined
    var LastId = '123';
    <% if (BreakCount >= 8) { %>
        var url = "http://192.168.1.109/MWT/Taglist/ShowMap" + LastId;
        window.location.replace(url);
    <% } %>
</script>

答案 3 :(得分:1)

试试这个:

 <script type="text/javascript">
   var id = '123';
   location.href = "http://192.168.1.109/MWT/Taglist/ShowMap/" + id;
 </script>

答案 4 :(得分:-1)

试试这样:

top.location.href =“/ url”;