我有一个扩展方法,它返回一个MvcHtmlString我意识到是编码的。在某些情况下,我会将查询字符串参数添加到路由中。我想要的结果是这样的:List/View/28?category=0&sort=Default  但是它正在渲染编码的字符串:ListView/28%3fcategory%3d0%26sort%3dDefault
在我的 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()))