2011-07-10 81 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。使用描述的方法會好嗎? –