ASP.Net MVCredirect到一个不同的视图

是否有可能redirect到控制器的不同视图?

例如,我的所有控制器都从具有构造函数的自定义控制器inheritance,如果某些条件不符合,我想redirect到不同的视图。 希望是有道理的。

您可以使用RedirectToAction()方法,然后redirect到的操作可以返回一个View。 最简单的方法是:

 return RedirectToAction("Index", model); 

然后在你的索引方法中,返回你想要的视图。

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

我不是100%确定这个条件是什么,但是对于我来说,上面没有直接的工作,认为它接近了。 我认为这是因为我在模型中需要“id”作为我的视图,因此称为“ObjectID”。

我有一个包含各种信息的模型。 我只需要这个ID。

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

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

(注意:我没有创buildMVC项目,所以我不知道所有正确的“位”)。

以下是你可以做的事情:

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

最简单的方法是使用返回视图。

 return View("ViewName"); 

请记住,如果您使用的是MVC C#/ .NET,则“ViewName”的物理名称应该像ViewName.cshtml在您的项目中。