1
爲了得到我想要的URL,我爲我的搜索結果創建了一個簡單的Link Creator助手。 但它不會讓我使用它的服務器urlencode和一些細節傳遞的是法國/捷克/瑞典的單詞逗號和撇號;ASP.Net MVC中的鏈接幫助器類; URL-Encode在哪裏?
有沒有一個快速的功能,可以將所有這些垃圾拿出來?
爲了得到我想要的URL,我爲我的搜索結果創建了一個簡單的Link Creator助手。 但它不會讓我使用它的服務器urlencode和一些細節傳遞的是法國/捷克/瑞典的單詞逗號和撇號;ASP.Net MVC中的鏈接幫助器類; URL-Encode在哪裏?
有沒有一個快速的功能,可以將所有這些垃圾拿出來?
爲此創建自定義HTML助手。使用TagBuilder生成HTML標記,並在需要的地方使用UrlEncode。例如:
public static string SearchActionLink(this HtmlHelper html, string linkText, string actionName, object routeValues)
{
var innerHtml = html.ViewContext.HttpContext.Server.UrlEncode("....");
TagBuilder tagBuilder = new TagBuilder("a") {
InnerHtml = innerHtml;
};
var urlHelper = new UrlHelper(html.ViewContext.RequestContext);
var url = urlHelper.Action(actionName, routeValues);
tagBuilder.MergeAttribute("href", url);
return tagBuilder.ToString(TagRenderMode.Normal);
}
更新:
像這樣的事情?:
public static string SearchActionLink(this HtmlHelper html, string linkText, System.Web.Routing.RouteValueDictionary routeValues)
{
var ref = html.ViewContext.HttpContext.Server.UrlEncode(routeValues["ref"]);
routeValues["ref"] = "_REF_";
TagBuilder tagBuilder = new TagBuilder("a") { InnerHtml = linkText; };
var urlHelper = new UrlHelper(html.ViewContext.RequestContext);
var url = urlHelper.RouteUrl(routeValues).Replace("_REF_", ref);
tagBuilder.MergeAttribute("href", url);
return tagBuilder.ToString(TagRenderMode.Normal);
}
鉭,雖然在技術上我不想URL編碼標籤 LABEL和的innerHTML =的innerHTML不應該有分號。 唯一的問題是,它會產生links/routevalues/action/ – 2009-07-31 10:28:53