Ответ 1
Вы можете напрямую вернуть другое представление, например:
return View("NameOfView", Model);
Или вы можете сделать частичный вид и можете вернуться как:
return PartialView("PartialViewName", Model);
У меня есть view (Index.cshtml) с кнопкой отправки. Когда нажата кнопка отправки, она вызывает действие (Action01) внутри контроллера (TestController.cs), поэтому в конце действия, которое я хочу вернуть в представление вызывающего (Index.cshtml), с помощью пользовательской модели представления в качестве параметра, Как это сделать?
Результаты после первой попытки с использованием View ( "ViewName", model):
Возникает ошибка, так как действие находится внутри контрольного теста Test, поэтому он возвращает \Views\Tests\Index, а моя страница индекса находится в \Views\Home\Index.
Вид "Индекс" или его мастер не был найден, или механизм просмотра не поддерживает найденные местоположения. Были обысканы следующие местоположения:
~/Views/Test/Index.aspx
~/Views/Test/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx
~/Views/Test/Index.cshtml
~/Views/Test/Index.vbhtml
~/Views/Shared/Index.cshtml
~/Views/Shared/Index.vbhtml
Я использовал return View("ViewName", model)
, и я изменил структуру своих каталогов, поскольку это была проблема.
Вы можете напрямую вернуть другое представление, например:
return View("NameOfView", Model);
Или вы можете сделать частичный вид и можете вернуться как:
return PartialView("PartialViewName", Model);
Чтобы вернуть другое представление, вы можете указать name
представления, которое вы хотите вернуть, и model
следующим образом:
return View("ViewName", yourModel);
если представление находится в другой папке в папке Views, используйте ниже абсолютный путь:
return View("~/Views/FolderName/ViewName.aspx");
Вы должны указать имя настраиваемого представления и связанную с ним модель в методе действия контроллера.
public ActionResult About()
{
return View("NameOfViewYouWantToReturn",Model);
}
public ActionResult Index()
{
return View();
}
public ActionResult Test(string Name)
{
return RedirectToAction("Index");
}
Return View
Прямо отображает ваш view
но
Действие Redirect ToAction
выполнено
Кроме того, вы можете просто установить ViewName:
return View("ViewName");
Пример полного контроллера:
public ActionResult SomeAction() {
if (condition)
{
return View("CustomView");
}else{
return View();
}
}
Это работает на MVC 5.