Как добавить новый путь для поиска файлов шаблонов DisplayTemplates и EditorTemplates в Asp.Net Core?

Как можно добавить к пользовательским соглашениям поиска новый путь для шаблонов в ASP.NET MVC, который будет автоматически использоваться при поиске шаблонов вместе с путями по умолчанию?
  • 8 июля 2024 г. 20:32
Ответы на вопрос 1
Для добавления нового пути для поиска файлов шаблонов DisplayTemplates и EditorTemplates в ASP.NET Core, необходимо выполнить следующие шаги:

1. Создайте класс, реализующий интерфейс IViewLocationExpander. Например:

```csharp
public class CustomViewLocationExpander : IViewLocationExpander
{
    public IEnumerable<string> ExpandViewLocations(ViewLocationExpanderContext context, IEnumerable<string> viewLocations)
    {
        return new string[]
        {
            "/Views/Shared/DisplayTemplates/{0}.cshtml",
            "/Views/Shared/EditorTemplates/{0}.cshtml"
        };
    }

    public void PopulateValues(ViewLocationExpanderContext context)
    {
    }
}
```

2. Зарегистрируйте этот класс в ConfigureServices методе в классе Startup:

```csharp
services.Configure<RazorViewEngineOptions>(options =>
{
    options.ViewLocationExpanders.Add(new CustomViewLocationExpander());
});
```

Теперь ASP.NET Core будет искать файлы шаблонов DisplayTemplates и EditorTemplates в указанных путях вместе с путями по умолчанию.

Для добавления нового пути для шаблонов в ASP.NET MVC, можно воспользоваться методом Add метода ViewData:

```csharp
ViewData.AddViewTemplatePath("/CustomTemplates/{0}.cshtml");
```

Этот путь будет автоматически использоваться при поиске шаблонов вместе с путями по умолчанию.
Похожие вопросы