Asp.net-Mvc

內置方法對從 Url.Action 返回的 url 中的 & 符號進行編碼?

  • June 12, 2012

我正在使用 Url.Action 在具有 XHTML 嚴格文件類型的站點上生成帶有兩個查詢參數的 URL。

Url.Action("ActionName", "ControllerName", new { paramA="1" paramB="2" })

生成:

/ControllerName/ActionName/?paramA=1&paramB=2

但我需要它來生成帶有&符號轉義的url:

/ControllerName/ActionName/?paramA=1&paramB=2

Url.Action 返回帶有 & 符號的 URL 未轉義的事實破壞了我的 HTML 驗證。我目前的解決方案是手動替換從 Url.Action 返回的 URL 中的 & 與轉義 & 符號。這個問題有內置的或更好的解決方案嗎?

這對我有用:

Html.Raw(Url.Action("ActionName", "ControllerName", new { paramA="1" paramB="2" }))

您不能使用 Server.HtmlEncode() 的任何原因

string EncodedUrl = Server.HtmlEncode(Url.Action("Action", "Controller", new {paramA = "1", paramB = "2"}));

http://msdn.microsoft.com/en-us/library/w3te6wfz.aspx

引用自:https://stackoverflow.com/questions/2898855