您好我正在尝试从视图重定向到另一个视图,但我在视觉工作室中得到了一个红色的方格。如何从视图内部重定向到另一个视图。这是我尝试过但它不起作用:
@Response.Redirect("~/Account/LogIn?returnUrl=Products");
如何从我的视图重定向到另一个视图?
答案 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方法。