ASP.. NET MVC 3: UrlHelper/HtmlHelper上的扩展方法编码为HTML
本文关键字:扩展 方法 编码 HTML HtmlHelper MVC NET UrlHelper ASP | 更新日期: 2023-09-27 18:15:21
我为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]>
如果我不使用扩展方法,它将如预期的那样正常工作…我怎样才能使它与我的扩展工作?
试试这个:
public static string Script(this UrlHelper helper, string scriptPath)
{
return MvcHtmlString.Create(string.Format(@"<script src=""{0}"" type=""text/javascript""></script>", helper.Content(scriptPath)));
}
所有HTML helper都需要返回MvcHtmlString。如果您只是返回一个字符串,它将被视为一个不受信任的值,并将被html编码。