Двигатель бритвы не находит просмотров - PullRequest
0 голосов
/ 08 марта 2019

Выпуск

В настоящее время у меня есть библиотека .NET Core, которую я использую для отображения страниц Razor в виде электронных писем в формате HTML. Я следую этому учебнику . Во время компиляции ошибок нет, но во время выполнения я получаю следующую ошибку:

«Невозможно найти представление» /Views/Emails/NewOrder/NewOrder.cshtml '. были найдены следующие места: /Views/Emails/NewOrder/NewOrder.cshtml'

Я установил действие сборки NewOrder.cshtml на Content, а копию в выходной каталог установил на Copy Always. Я не уверен, почему это не может найти представление, поскольку я вижу в папке bin\Debug\netcoreapp2.2\Views, что электронные письма копируются в выходной каталог.


код

Я ищу вид со следующим кодом:

private IView FindView(ActionContext actionContext, string viewName)
{
    var getViewResult = _viewEngine.GetView(executingFilePath: null, viewPath: viewName, isMainPage: true);
    if (getViewResult.Success)
    {
        return getViewResult.View;
    }

    var findViewResult = _viewEngine.FindView(actionContext, viewName, isMainPage: true);
    if (findViewResult.Success)
    {
        return findViewResult.View;
    }

    var searchedLocations = getViewResult.SearchedLocations.Concat(findViewResult.SearchedLocations);
    var errorMessage = string.Join(
        Environment.NewLine,
        new[] {$"Unable to find view '{viewName}'. The following locations were searched:"}.Concat(
            searchedLocations));

    throw new InvalidOperationException(errorMessage);
}

1 Ответ

0 голосов
/ 09 марта 2019

Казалось, что он ищет в каталоге с исходными файлами, а не в папке с исполняемой сборкой.Я исправил это, изменив первую строку метода FindView на следующее:

var dir = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
var getViewResult = _viewEngine.GetView(executingFilePath: dir, viewPath: viewName, isMainPage: true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...