我为UrlHelper编写了一些扩展方法,以便更轻松地加载或标记。但是,似乎它在浏览器中呈现为文字文本。这就是我所拥有的:
public static string Script(this UrlHelper helper, string scriptPath)
{
return string.Format(@"<script src=""{0}"" type=""text/javascript""></script>", helper.Content(scriptPath));
}
这是我的.cshtml代码:
@section HeadContent
{
@Url.Style("MyStyleName")
@Url.Script("MyScriptName")
@Url.MetaKeywords("My Keywords")
@Url.MetaDescription("Some Description")
}
它出现在<script [etc, etc]>
如果我不使用扩展方法,它将按预期正常工作...如何使其与我的扩展程序一起使用?
答案 0 :(得分:2)
试试这个:
public static string Script(this UrlHelper helper, string scriptPath)
{
return MvcHtmlString.Create(string.Format(@"<script src=""{0}"" type=""text/javascript""></script>", helper.Content(scriptPath)));
}
答案 1 :(得分:2)
所有HTML帮助程序都需要返回MvcHtmlString。如果您只返回一个字符串,它将被视为不受信任的值,并将进行HTML编码。