Почему я создаю представление для каждого метода действия? - PullRequest
0 голосов
/ 29 декабря 2011

Привет; Я разработчик программного обеспечения Asp.net. я пытаюсь научиться asp.net mvc. Но я лицом к лицу странная вещь. Имя моего метода контроллера должно совпадать с именем представления или наоборот. это странно! Посмотри пожалуйста мой _Layout:

    <nav>
            <ul id="menu">
                <li>@Html.ActionLink("Home", "Index", "Home")</li>
                <li>@Html.ActionLink("About", "About", "Home")</li>
                 <li>@Html.ActionLink("Article", "GetAll", "Article")</li>
            </ul>
        </nav>

страница просмотра статьи нуждается в методе GetAll, также необходим GetAll.cshtml. Мое желание: имя моей страницы просмотра не должно зависеть от имени метода класса контроллера. Мой контроллер: enter image description here

Мое решение:

enter image description here

Я думаю, что Asp.net MVC странный. мне не нравится имя действия контроллера должно совпадать с именем страницы просмотра? как это сделать? я думаю, что View name должно быть независимым от любого имени

Ответы [ 3 ]

6 голосов
/ 29 декабря 2011

Вы правы в том, что по умолчанию имя вашего представления должно совпадать с именем действия.Однако это легко изменить.Вы можете просто вызвать эту перегрузку метода View в контроллере и передать любое имя представления:

return View("SomeViewName",articles);
1 голос
/ 29 декабря 2011

Оно не должно совпадать с именем вашего метода.По умолчанию MVC3 будет искать View с тем же именем, но вы можете создать View с ЛЮБЫМ именем и сказать MVC вернуть это представление:

return View("MyView",articles);
0 голосов
/ 29 декабря 2011

У меня есть 2 комментария:

  • GetAll () в MVC обычно называется Index (как в индексе статей)
  • Вы можете назвать свой метод как-нибудь и вернутьпредставление с другим именем,

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