MVC3 Может ли два действия контроллера вернуть один вид?
В моем контроллере есть два метода действий. Я хочу, чтобы оба возвращали одно представление.
Причина в том, что у меня есть условные проверки в моем представлении, которые проверяют, является ли свойство нулевым, а затем не показывают div и если пользователь нажимает кнопку загрузки, то одно и то же представление необходимо вернуть, установив свойство и затем отображается div.
Эта логика требуется как минимум 15 раз, и я хочу создать отдельные действия, которые возвращают модель, но одно представление. Возможно ли это?
Ответы
Ответ 1
Вам просто нужно указать это имя вида в своем операторе return:
public ActionResult SomeAction()
{
// do something
return View("SharedView", viewModel);
}
Если у вас есть представление с именем SharedView, все действия в этом контроллере могут получить к нему доступ. Если вы хотите поделиться им между действиями, которые находятся на других контроллерах, вы можете использовать общую папку в представлениях или указать полный путь с именем вида.
Ответ 2
return View("viewName", data);
Первый параметр указывает фреймворк, из которого представление для рендеринга и второй параметр используется для предоставления данных для этого представления
Во-вторых, вы можете использовать
return RedirectToAction("actionName",new{data=something});