2016-09-02 2 views
1

Как искать объекты в файле route.config. Мне нужен порядок поиска. , например.Порядок поиска объектов в MVC

~/Views//Home/Index 
~/Views/Shared/Home/Index 
+0

Обращаем внимание, что тег модели-представления-контроллера предназначен для вопросов о шаблоне. Существует определенный тег для реализации ASP.NET-MVC. –

+0

'/ Views/{Controller}/{Действие}', за которым следует '/ Views/Shared/{Action}' ('/ Views/Shared/{Controller}/{Action}' не будет искать, если вы не настроите механизм просмотра) –

ответ

0

По умолчанию, MVC поиски вида двигателя, доступный вида cshtml файлы в этих местах в порядке сверху вниз:

~/Views/ControllerName/ActionName.cshtml

~/Views/Shared/ActionName.cshtml

~/Views/Shared/LayoutName.cshtml (для разметки файлы)

Любое изменение или пересмотр способа поиска в режиме просмотра требует создания новый класс, как это:

public class CustomViewSearch : RazorViewEngine 
{ 
    public CustomViewSearch() 
    { 
     MasterLocationFormats = new[] 
     { 
      "~/Views/Shared/{0}.cshtml" 
     }; 

     ViewLocationFormats = new[] 
     { 
      // you can change view search order here 
      // {0} = action name, {1} = controller name 
      "~/Views/{1}/{0}.cshtml", 
      "~/Views/Shared/{1}/{0}.cshtml" 
     }; 
     PartialViewLocationFormats = ViewLocationFormats; 

     FileExtensions = new[] 
     { 
      "cshtml" 
     }; 
    } 
} 

Затем поместите свой собственный метод вид поиска на Global.asax внутри Application_Start метода:

protected void Application_Start() 
{ 
    // remove all existing view search methods if you want 
    ViewEngines.Engines.Clear(); 

    // add your custom view search method here 
    ViewEngines.Engines.Add(new CustomViewSearch()); 
} 

Любые предложения приветствуются.

Смежные вопросы