Подтвердить что ты не робот

Вызов другого представления из контроллера с помощью ASP.NET MVC 4

У меня есть 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), и я изменил структуру своих каталогов, поскольку это была проблема.

4b9b3361

Ответ 1

Вы можете напрямую вернуть другое представление, например:

return View("NameOfView", Model);

Или вы можете сделать частичный вид и можете вернуться как:

return PartialView("PartialViewName", Model);

Ответ 2

Чтобы вернуть другое представление, вы можете указать name представления, которое вы хотите вернуть, и model следующим образом:

return View("ViewName", yourModel);

если представление находится в другой папке в папке Views, используйте ниже абсолютный путь:

return View("~/Views/FolderName/ViewName.aspx");

Ответ 3

Вы должны указать имя настраиваемого представления и связанную с ним модель в методе действия контроллера.

public ActionResult About()
{            
   return View("NameOfViewYouWantToReturn",Model); 
}

Ответ 4

            public ActionResult Index()
            {
                return View();
            }


            public ActionResult Test(string Name)
            {
                return RedirectToAction("Index");
            }

Return View Прямо отображает ваш view но

Действие Redirect ToAction выполнено

Ответ 5

Кроме того, вы можете просто установить ViewName:

return View("ViewName");

Пример полного контроллера:

public ActionResult SomeAction() {
    if (condition)
    {
        return View("CustomView");
    }else{
        return View();
    }
}

Это работает на MVC 5.