Другой способ указать представление в MVC? - PullRequest
0 голосов
/ 13 декабря 2011

Я просто смотрю на пример кода и замечаю то, чего раньше не видел:

    public virtual ActionResult Index()
    {
        var model = new MenuRatingModel();
        List entries = new List();
        model.ListEntries = new []
                                {
                                    new MenuRatingListEntryModel(),
                                    new MenuRatingListEntryModel(),
                                    new MenuRatingListEntryModel(),
                                    new MenuRatingListEntryModel()
                                };
        return View(Views.Index, model);
    }

Здесь разработчик указывает «Views.Index» в ответе.Может кто-нибудь объяснить, почему это так.Не проще ли это опустить?

Ответы [ 2 ]

3 голосов
/ 13 декабря 2011

Я думаю, что разработчик создал какой-то класс Enum / Const, в котором хранятся все имена всех представлений.Метод View принимает строку для имени представления, которое вы хотите отобразить.Проблема с предоставлением строки заключается в том, что ее сложнее реорганизовать и она более подвержена ошибкам (т.е. опечаткам).Если вы решите переименовать представление, вам придется менять имя везде, где вы используете имя представления.

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

например,

public static class Views
{
    public const string Index = "Index";
    public const string SomeOtherView = "SomeOtherView";
}
1 голос
/ 13 декабря 2011

Они могли бы это пропустить. Похоже, что они делают это как стандарт везде, где нет «волшебных строк», которые могли бы быть написаны с ошибками. Также вы можете щелкнуть правой кнопкой мыши по представлению и легко узнать ВСЕ местоположения, на которые оно ссылается, что, вероятно, является основной причиной, по которой они это сделали.

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