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.