Как я могу изменить имя по умолчанию "Области" на "<MyOwnAreaName> Области" в MVC2? - PullRequest
0 голосов
/ 20 февраля 2011

Я использую MVC 2, мне нужно изменить имя по умолчанию "Области" на <MyOwnAreaName>.

Невозможно изменить имя по умолчанию "Области" на мое собственное имя ??

Может ли кто-нибудь помочь дать решение, заранее спасибо.

1 Ответ

5 голосов
/ 20 февраля 2011

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

MasterLocationFormats = new[] 
{
    "~/Views/{1}/{0}.master",
    "~/Views/Shared/{0}.master"
};

AreaMasterLocationFormats = new[] 
{
    "~/Areas/{2}/Views/{1}/{0}.master",
    "~/Areas/{2}/Views/Shared/{0}.master",
};

ViewLocationFormats = new[] 
{
    "~/Views/{1}/{0}.aspx",
    "~/Views/{1}/{0}.ascx",
    "~/Views/Shared/{0}.aspx",
    "~/Views/Shared/{0}.ascx"
};

AreaViewLocationFormats = new[] 
{
    "~/Areas/{2}/Views/{1}/{0}.aspx",
    "~/Areas/{2}/Views/{1}/{0}.ascx",
    "~/Areas/{2}/Views/Shared/{0}.aspx",
    "~/Areas/{2}/Views/Shared/{0}.ascx",
};

Вот как это может выглядеть в вашем случае:

public class CustomViewEngine : WebFormViewEngine
{
    public CustomViewEngine()
    {
        AreaMasterLocationFormats = new[] 
        {
            "~/MyOwnAreaName/{2}/Views/{1}/{0}.master",
            "~/MyOwnAreaName/{2}/Views/Shared/{0}.master",
        };

        AreaViewLocationFormats = new[] 
        {
            "~/MyOwnAreaName/{2}/Views/{1}/{0}.aspx",
            "~/MyOwnAreaName/{2}/Views/{1}/{0}.ascx",
            "~/MyOwnAreaName/{2}/Views/Shared/{0}.aspx",
            "~/MyOwnAreaName/{2}/Views/Shared/{0}.ascx",
        };
    }
}

, а затем зарегистрируйте этот пользовательский движок в Application_Start:

protected void Application_Start()
{
    ...
    ViewEngines.Engines.Add(new CustomViewEngine());
}

Теперь вы можете помещать файлы областей в ~/MyOwnAreaName.

Примечание / советы: максимально придерживайтесь соглашений ASP.NET MVC и отменяйте их только в том случае, еслистрого необходимо.

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