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")
',如果内容正在编译,则假设被某些字符串替换。