ASP.Net MVC перенаправление на другой вид

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

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

Ответ 1

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

return RedirectToAction("Index", model);

Затем в методе "Индекс" верните нужный вид.

Ответ 2

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

Ответ 3

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

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

До вышеописанного я создал новый объект System.Web.Routing.RouteValueDictionary и добавил нужный идентификатор.

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

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

Ответ 4

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

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

Ответ 5

Самый простой способ - использовать return View.

return View("ViewName");

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