在asp.net 4.0 Web表单中的URL路由中的特殊字符?

时间:2011-07-10 18:18:40

标签: c# asp.net url-routing asp.net-4.0

如何在asp.net 4.0中使用url路由时处理url中的特殊字符?

特殊字符,如(&,。)

它在网址中显示错误请求或危险字符。

如何处理?

假设我在Global.asax文件中有网址路由

protected void Application_Start(object sender, EventArgs e)
    {
        CustomRouteTable(RouteTable.Routes);
    }
void CustomRouteTable(RouteCollection routes)
    {
        routes.MapPageRoute("Product", "Product/{pId}/{ProductName}", "~/Product/ProductDetail.aspx");

    }

假设productName是Phone& Cordless或Phone:Cordless 然后我得到错误。

如何处理?

2 个答案:

答案 0 :(得分:1)

您应该远离在不用于处理查询字符串参数的URL中使用&符号。请考虑在您的网址的产品名称中使用“ - 和 - ”。

答案 1 :(得分:0)

网址有一种特殊的编码,称为网址编码,几乎所有网络编程语言(包括JavaScript)都有一种方法可以对字符串进行编码和解码来自URL编码字符串。正如@rkaregaran所说,我还强烈建议您在网址中使用-(短划线)或_(下划线)。

无论如何,正如我在您的解释中看到的那样,我认为您应该使用/phone/cordless而不是phone:cordless。似乎phone这里是一种分类法。