Как я могу заставить MVC3 вызывать представление с другим именем? - PullRequest
1 голос
/ 01 августа 2011

В моем контроллере есть следующее:

    public ActionResult Tests()
    {
    }

    public ActionResult Test()
    { 
    }

Я бы хотел, чтобы оба вернулись в представление Test.cshtml, когда я вернусь.Может кто-нибудь сказать мне, если это возможно.Я знаю, что тестовый по умолчанию пойдет в Test.cshtml, но как насчет тестов?Как я могу направить это в Test.cshtml?

В качестве альтернативы я должен сохранить их как два представления и использовать RenderPartial?Если я это сделал, то как я могу передать мою модель в представление RenderPartial?

Спасибо,

Ответы [ 4 ]

2 голосов
/ 01 августа 2011

Перегрузка View позволяет вам явно указать, какое представление использовать.

public ActionResult Tests()
{
  return View("Test");
 }

 public ActionResult Test()
 { 
   return View("Test");
 }
2 голосов
/ 01 августа 2011

Укажите имя вида при возврате

Кажется, вы на самом деле не проверяли перегрузки метода. При возврате из действий контроллера есть несколько возможных перегрузок , которые возвращают ViewResult результат. Один из них позволяет указать имя вида:

public ActionResult Tests()
{
    ...
    // provide the model too if you need to
    return View("Test", model);
}

public ActionResult Test()
{ 
    ...
    // provide the model too if you need to
    return View("Test", model);
}

Html.RenderPartial также имеет перегрузки

То же самое относится и к Html.RenderPartial, где вы также можете указать модель во время вызова. Проверьте его методы расширения здесь .

Я предлагаю вам проверить документацию, потому что вы поймете гораздо больше.

1 голос
/ 01 августа 2011

Использование это Перегрузка

return View("Test");

Это вернет представление с именем «Test», несмотря на вызывающее действие

0 голосов
/ 01 августа 2011

Да, просто укажите имя представления:

return View("Test");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...