是否可以从控制器重定向到不同的视图?
例如,我的所有控制器都从具有构造函数的自定义控制器继承,如果不满足某些条件,我想将其重定向到不同的视图。 希望这是有道理的。
答案 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。