4

我想在我的控制器中创建一个规范的 url 并将其传递给我的 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" />

AfaikHtml.Raw()助手应该输出&而不是&amp;.

这怎么可能发生?

编辑:

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

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

2 回答 2

4

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

于 2013-04-16T14:18:33.547 回答
1

尝试:

<link rel="canonical" href="@Html.Raw(HttpUtility.HtmlDecode(Model.LinkCanonical))" />
于 2013-04-16T14:10:26.337 回答