我想在我的控制器中创建一个规范网址,并将其传递给我的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&pagesize=25" />
Afaik Html.Raw()
助手应输出&
而不是&
。
这怎么可能发生?
修改
此解决方案有效,此处已提及:Why is Html.Raw escaping ampersand in anchor tag in ASP.NET MVC 4?:
@Html.Raw("<link rel=\"canonical\" href=" + Model.LinkCanonical + "\" />")
答案 0 :(得分:4)
这是正确的输出 - 浏览器将处理html编码的&符号,URL确实指向/books?page=4&pagesize=25
(试试吧!)
答案 1 :(得分:1)
尝试:
<link rel="canonical" href="@Html.Raw(HttpUtility.HtmlDecode(Model.LinkCanonical))" />