Html.Raw()输出是&而不是&

时间:2013-04-16 14:07:42

标签: c# asp.net-mvc razor asp.net-mvc-4

我想在我的控制器中创建一个规范网址,并将其传递给我的ViewModel,以便在标题中显示它。

我的ViewModel中的url字符串是:

/books?page=4&pagesize=25

我有以下代码:

@if (!string.IsNullOrEmpty(Model.LinkCanonical))
{
    <link rel="canonical" href="@Html.Raw(Model.LinkCanonical)" />
}

输出是:

<link rel="canonical" href="/books?page=4&amp;pagesize=25" />

Afaik Html.Raw()助手应输出&而不是&amp;

这怎么可能发生?

修改

此解决方案有效,此处已提及:Why is Html.Raw escaping ampersand in anchor tag in ASP.NET MVC 4?

 @Html.Raw("<link rel=\"canonical\" href=" + Model.LinkCanonical + "\" />")

2 个答案:

答案 0 :(得分:4)

这是正确的输出 - 浏览器将处理html编码的&符号,URL确实指向/books?page=4&pagesize=25(试试吧!)

答案 1 :(得分:1)

尝试:

<link rel="canonical" href="@Html.Raw(HttpUtility.HtmlDecode(Model.LinkCanonical))" />