从视图重定向到另一个视图

时间:2012-12-29 09:52:46

标签: asp.net-mvc asp.net-mvc-3

您好我正在尝试从视图重定向到另一个视图,但我在视觉工作室中得到了一个红色的方格。如何从视图内部重定向到另一个视图。这是我尝试过但它不起作用:

@Response.Redirect("~/Account/LogIn?returnUrl=Products");

如何从我的视图重定向到另一个视图?

3 个答案:

答案 0 :(得分:38)

这是因为你的陈述没有产生输出。

除了Darin和懒惰的所有警告(他们是对的);这个问题仍然值得学习。

如果要执行不直接生成输出的方法,请执行以下操作:

@{ Response.Redirect("~/Account/LogIn?returnUrl=Products");}

对于渲染部分内容也是如此:

@{ Html.RenderPartial("_MyPartial"); }

答案 1 :(得分:15)

这不是应该使用ASP.NET MVC的方式。您不从视图重定向。您从相应的控制器操作重定向:

public ActionResult SomeAction()
{
    ...
    return RedirectToAction("SomeAction", "SomeController");
}

现在,因为我在您的示例中看到您尝试重定向到LogOn操作,您实际上不需要手动执行此重定向,而只是简单地修改需要使用{{{}进行身份验证的控制器操作1}}属性:

[Authorize]

现在,当某个匿名用户尝试访问此控制器操作时,表单身份验证模块将在它到达操作之前自动拦截请求,并将用户重定向到您在web.config中指定的LogOn操作({{ 1}})。

答案 2 :(得分:1)

视图的目的是显示模型。在创建模型并将其传递给视图之前,您应该使用控制器重定向请求。使用Controller.RedirectToAction方法。