razor.Render没有在HtmlString中编译帮助器

时间:2018-06-07 05:30:11

标签: asp.net-mvc razor razorengine razor-pages viewengine

razor.Render正在渲染局部视图,但它没有编译html助手。 例如模型'htmlString'的类型为HtmlString。它包含一些字符串,如@MyHelper("abc")

当放置在.cshtml文件上时,此助手可以正常工作。但是当它来自数据库然后执行以下代码行时,帮助程序被视为静态文本并保持不变。

的IHttpHandler:

var razor = new RazorView(controllerContext, "~/Views/Shared/_myview.cshtml", null, false, null);
razor.Render(new ViewContext(controllerContext, razor, new ViewDataDictionary(htmlString), new TempDataDictionary(), writer), writer);

_myview.cshtml:

@model System.Web.HtmlString
@Model

@Model包含以下字符串:

@MyHelper("test")
// The ID of the Chrome extension
var chromeWLExtensionId = 'asdasda' + '@MyHelper("test")' + 'dawqadadasd';

//Check if an Url is absolute or relative
function isAbsoluteUrl(urlToCheck)
{
    if(urlToCheck)
    {
        var isAbsolute = new RegExp('^([a-z]+://|//)', 'i');
        return isAbsolute.test(urlToCheck);
    }
    return false;
}

我仍然在输出中看到'@MyHelper("test")',如果内容正在编译,则假设被某些字符串替换。

0 个答案:

没有答案