인코딩 방법이 MvcHtmlString
인 확장 메소드가 있습니다. 어떤 경우에는 쿼리 문자열 매개 변수를 경로에 추가합니다. 원하는 결과는 다음과 같습니다. List/View/28?category=0&sort=Default
그러나 대신 인코딩 된 문자열이 렌더링됩니다. ListView/28%3fcategory%3d0%26sort%3dDefault
인코딩 된 MvcHtmlString을 Html.Decode 할 수 없습니다.
내 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);
}
면도기 :
routeDictionary["Id"] = (routeDictionary["Id"] + string.Format("?{0}", queryStringText));
와 B처럼 Razor
에 구문을 떠나 :
@Html.Raw(HttpUtility.HtmlDecode(@Html.GenerateLanguageLink().ToHtmlString()))
나는 당신의 제안 Kundan을 구현했지만 여전히 같은 문제가 있습니다. – Flea