MVC анализирует неправильный макет представления - PullRequest
2 голосов
/ 01 февраля 2012

Я столкнулся с небольшой странностью, когда на моей машине для разработки все работает нормально, а на моем сервере - нет.

public static string RenderViewToString(this Controller controller, string viewName, object model, string masterName)
{
    if (string.IsNullOrEmpty(viewName))
        viewName = controller.ControllerContext.RouteData.GetRequiredString("action");

    controller.ViewData.Model = model;

    using (StringWriter sw = new StringWriter())
    {
        ViewEngineResult viewResult = ViewEngines.Engines.FindView(controller.ControllerContext, viewName, masterName);
        ViewContext viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, sw);
        viewResult.View.Render(viewContext, sw);

        return sw.GetStringBuilder().ToString();
    }
}

Используя приведенный выше код, я рендеринг Viewв строку, которая затем отправляется по электронной почте.

File layout

Как вы можете видеть из списка файлов выше, у меня есть папка электронной почты, которая содержит несколько просмотров и _ViewStartФайл .cshtml.

NewUser.cshtml устанавливает @ {Layout = "~ / Views / Shared / _email.cshtml"} (_email.cshtml имеет Layout = "" в голове)а также использует _ViewStart.cshtml для определения «главной страницы» для представления.

Сейчас ... На моем производственном сервере, когда я пытаюсь выполнить рендеринг NewUser.cshtml, выдается ошибка, в которой говорится, чтов нем отсутствует обязательный раздел, объявленный в макете _public.cshtml.

На моей машине для разработки (с использованием встроенного сервера VS2010) - он работает ...

Есть идеи?

Ура

...