我有一個擴展方法,返回一個MvcHtmlString
,我發現它是編碼的。在某些情況下,我正在查詢字符串參數的路線。我想要的結果看起來像這樣:List/View/28?category=0&sort=Default
然而它正在渲染編碼的字符串:ListView/28%3fcategory%3d0%26sort%3dDefault
無法Html.Decode一個編碼的MvcHtmlString
在我的C#和我的Razor代碼中,我試圖解碼它,但它沒有效果。還有什麼我可以嘗試嗎?
public static MvcHtmlString GenerateLanguageLink(this HtmlHelper html)
{
var routeDictionary = html.ViewContext.RouteData.Values;
var queryStringCollections = html.ViewContext.HttpContext.Request.QueryString;
var queryStringText = string.Empty;
if (queryStringCollections.Count > 0)
{
queryStringText = queryStringCollections.ToString();
routeDictionary["Id"] = HttpUtility.HtmlDecode(routeDictionary["Id"] + string.Format("?{0}", queryStringText));
}
return html.ActionLink(linkText, routeDictionary["action"].ToString(), routeDictionary["controller"].ToString(), routeDictionary, null);
}
剃刀:
@Html.Raw(HttpUtility.HtmlDecode(@Html.GenerateLanguageLink().ToHtmlString()))
我實施了你的建議昆丹,但我仍然有同樣的問題。 – Flea