如何在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 然后我得到错误。
如何处理?
答案 0 :(得分:1)
您应该远离在不用于处理查询字符串参数的URL中使用&符号。请考虑在您的网址的产品名称中使用“ - 和 - ”。
答案 1 :(得分:0)
网址有一种特殊的编码,称为网址编码,几乎所有网络编程语言(包括JavaScript)都有一种方法可以对字符串进行编码和解码来自URL编码字符串。正如@rkaregaran所说,我还强烈建议您在网址中使用-
(短划线)或_
(下划线)。
无论如何,正如我在您的解释中看到的那样,我认为您应该使用/phone/cordless
而不是phone:cordless
。似乎phone
这里是一种分类法。