从URL中删除不需要的字符

时间:2014-06-07 12:41:58

标签: regex seo url-routing

我已经使用GetRouteUrl来创建SEO友好的URL,但我现在想删除%20即空格并用短划线(“ - ”)替换。我网站的示例页面如下所示。我希望Title变量为“madonna-item”而不是“Madonna%20Item”。

  

/ ProductsByDepartment / Gracya /麦当娜/麦当娜%20Item类别ID = 9&安培;?的productId = 8&安培; DepartmentID的= 4

我已经创建了一个类(StringHelpers)来修复url,但我不知道在哪里调用FixUrl

Public static class StringHelpers 
{

public static string FixUrl(this string url)
    {
        string encodedUrl = (url ?? "").ToLower();

        encodedUrl = Regex.Replace(encodedUrl, @"\+", "and");

        encodedUrl = encodedUrl.Replace("'", "");

        encodedUrl = Regex.Replace(encodedUrl, @"[^a-z0-9]", "-");

        return encodedUrl;
    }   

}

包含要更新的链接的代码如下。我想在Title字段上使用FixUrl,但这不起作用。

请您告诉我如何使用FixUrl?

<td class="Product_title" height="20px" width="180px">
<a href='<%#: GetRouteUrl("ProductExtraRoute", new {CategoryId = Eval("catId"), productId = Eval("productId"), departmentId = Eval("depId"), Title = Eval("Title")}).FixUrl()%>' class="Product">
<asp:Literal ID="literal2" runat="server" Text='<%# Eval(("Title").FixUrl()) %>'></asp:Literal>

1 个答案:

答案 0 :(得分:0)

尝试使用decodeURIComponent 请检查此http://www.w3schools.com/jsref/jsref_decodeuricomponent.asp

之后用 -

替换所有空格