2011-07-10 51 views
2

如何在使用网址路由在asp.net 4.0中处理url中的特殊字符?在asp.net 4.0 web表单的url路由中的特殊字符?

特殊字符像(&。)

它显示错误坏请求或URL危险特性。

如何处理?

假设我有在Global.asax中的URL路由文件

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

    } 

假设产品名称是电话&无绳电话或:无绳 然后我得到的错误。

如何处理?

回答

1

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

0

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

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

+0

我无法在/ phone/Cordless中查询查询字符串。如果我以无绳(p)参数结束,该怎么办?然后url/Product/1/Cordless(p)。 –

+0

我有一个网址http://www.dominicpettifer.co.uk/Blog/34/asp-net-mvc-and-clean-seo-friendly-urls。使用描述的方法会好吗? –