ASP.Net MVC перенаправить на другой взгляд - PullRequest
83 голосов
/ 13 февраля 2009

Можно ли перенаправить на другой вид из контроллера?

Например, все мои контроллеры наследуются от пользовательского контроллера, у которого есть конструктор, который я хочу перенаправить в другое представление, если определенные критерии не выполнены. Надеюсь, что это имеет смысл.

Ответы [ 5 ]

135 голосов
/ 13 февраля 2009

Вы можете использовать метод RedirectToAction(), тогда действие, на которое вы перенаправляете, может вернуть представление. Самый простой способ сделать это:

return RedirectToAction("Index", model);

Затем в вашем методе Index верните желаемое представление.

17 голосов
/ 26 марта 2012
 if (true)
 {
   return View();
 }
 else
 {
   return View("another view name");
 }
3 голосов
/ 22 апреля 2011

Я не уверен на 100%, каковы условия для этого, но для меня вышесказанное не сработало напрямую, я подумал, что это близко. Я думаю, что это потому, что мне нужно было «id» для моего представления, в модели он назывался «ObjectID».

У меня была модель с разнообразной информацией. Мне просто нужен был идентификатор.

До этого я создал новый объект System.Web.Routing.RouteValueDictionary и добавил необходимый идентификатор.

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

(Примечание: проект MVC, о котором я говорил, я не создавал, так что я не знаю, где находятся все правильные "неудобные" биты.)

2 голосов
/ 27 ноября 2016

Самым простым способом является использование return View.

return View("ViewName");

Помните, что физическое имя «ViewName» должно быть примерно таким же, как ViewName.cshtml в вашем проекте, если вы используете MVC C # / .NET.

2 голосов
/ 27 ноября 2013

Вот что вы можете сделать:

return View("another view name", anotherviewmodel);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...