ASP.Net MVC重定向到不同的视图

时间:2009-02-13 15:56:42

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

是否可以从控制器重定向到不同的视图?

例如,我的所有控制器都从具有构造函数的自定义控制器继承,如果不满足某些条件,我想将其重定向到不同的视图。 希望这是有道理的。

5 个答案:

答案 0 :(得分:135)

您可以使用RedirectToAction()方法,然后您重定向到的操作可以返回视图。最简单的方法是:

return RedirectToAction("Index", model);

然后在Index方法中,返回所需的视图。

答案 1 :(得分:17)

 if (true)
 {
   return View();
 }
 else
 {
   return View("another view name");
 }

答案 2 :(得分:3)

我不是百分之百确定这是什么条件,但对我来说,上面没有直接起作用,认为它已经接近了。我认为这是因为我在模型中需要“id”作为“ObjectID”。

我有一个包含各种信息的模型。我只需要身份证。

在上面之前,我创建了一个新的System.Web.Routing.RouteValueDictionary对象并添加了所需的id。

(System.Web.Routing.)RouteValueDictionary RouteInfo = new RouteValueDictionary();
RouteInfo.Add("id", ObjectID);
return RedirectToAction("details", RouteInfo);

(注意:有问题的MVC项目我没有创建,所以我不知道所有正确的“fiddly”位在哪里。)

答案 3 :(得分:2)

以下是您可以做的事情:

return View("another view name", anotherviewmodel);

答案 4 :(得分:2)

最简单的方法是使用return View。

return View("ViewName");

请记住,如果你使用的是MVC C#/ .NET,那么“ViewName”的物理名称应该类似于项目中的ViewName.cshtml。