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