Есть ли способ установить соглашение при возврате частичного представления - PullRequest
0 голосов
/ 27 августа 2010

Есть ли способ установить соглашение при возврате частичного представления? Например: У меня есть следующее:

HomeController ---> Home(action Method) --> _Home.ascx (partial view)

AboutController ---> About(action Method) --> _About.ascx (partial view)

В настоящее время я передаю имя частичного вида явно помощнику PartialView (т.е. возвращает PartialView ("_ home");)

примечание: без использования T4MVC.

Спасибо

Ответы [ 2 ]

0 голосов
/ 27 августа 2010

Компонент времени выполнения MVC, который отвечает за отображение имени представления в нужный файл, называется ViewEngine. В случае файлов ascx это по умолчанию WebFormViewEngine. Он предоставляет свойства, которые содержат шаблоны поиска по умолчанию. Например, вы можете изменить PartialViewLocationFormats и вместо этого:

"~\Views\{1}\{0}.ascx"
"~\Views\Shared\{0}.ascx"

быть таким:

"~\Views\{1}\_{0}.ascx"
"~\Views\Shared\_{0}.ascx"

Обратите внимание, что это изменение будет применяться ко всем вашим частичным поискам.

0 голосов
/ 27 августа 2010

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

public virtual ViewEngineResult FindPartialView(ControllerContext controllerContext,
    string partialViewName) 
{
    // skipped code

    if (string.IsNullOrEmpty(partialViewName)) 
    {
        throw new ArgumentException(MvcResources.Common_NullOrEmpty,
            "partialViewName");
    }

    // skipped code
}

Хотя, если вы переопределите этот метод, вы, возможно, можете использовать некоторыеСоглашение об именах.

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