RazorEngine v2.1, выбрасывающий исключение «объект равен нулю» в Razor.Parse - PullRequest
1 голос
/ 20 января 2012

Мой шаблон выглядит так:

@using RazorEngine;
@model System.String
@{
    var content = @"<div id=""text-block-container"">
            @Html.Raw(""<h1>test</h2>"")
    </div>";
    Razor.SetTemplateBase(typeof(MvcTemplateBase<>));

    var output = Razor.Parse<MyType>(content, new MyType() );
}
<div>
    @Html.Raw(output)
</div>

MvcTemplateBase выглядит следующим образом:

public abstract class MvcTemplateBase<T> : TemplateBase<T> {
    public HtmlHelper<object> Html { get; private set; }
    public UrlHelper Url { get; private set; }

    public void InitHelpers() {
        var httpContext = new HttpContextWrapper(HttpContext.Current);
        var handler = httpContext.CurrentHandler as MvcHandler;
        if (handler == null)
            throw new InvalidOperationException("Unable to run template outside of ASP.NET MVC");
    }

Отредактированный заголовок: я выяснил, что вызывает ошибку «Очистить», не определенную.У меня была определена моя собственная версия TemplateBase, и это была версия, в которую было помещено пространство имен.Так как я не определил метод Clear в моей реализации, который вызвал ошибку.

Теперь я получаю нулевое исключение при вызове Razor.Parse, даже если входные данные не равны NULL, как 'raw', так ипредоставленная модель инициализируется и имеет значения.

Редактируется для исправления незначительной ошибки кодирования в примере.

1 Ответ

1 голос
/ 21 января 2012

Тип MvcTemplateBase<T> еще не разработан, и используемая в настоящее время версия является очень ранней незаконченной версией.

Я бы спросил, почему вы пытаетесь запустить шаблон RazorEngine в представлении MVC Razor?

...