0
我做了一個類似於登錄/ {id}/{hash}/{gen}/{dt}(這是用於自動識別)的路由。檢查所有鍵的routedata.values
當我使用URL 「登錄」和「登錄/值1 /值2 /值3/VALUE4」,它工作得很好。
但在情況下,當我只使用一個,兩個或三個路由值,它給了我錯誤404
例如,「登錄/ VALUE1」,「登錄/值1 /值2」和「登錄/值1 /值2 /值3」發生錯誤404(找不到頁面)。
所以我需要的是,如果有一個完整的路由上的網址不匹配,我需要重定向到登錄而不是PageNotFound頁。
「登錄/ VALUE1」 ==>「登錄」
「登錄/ VALUE1/VALUE2」 ==>「登錄」
「登錄/ VALUE1/value2/value3「 ==>」登錄「
我的代碼如下:
if (Page.RouteData.Values.ContainsKey("id") &&
Page.RouteData.Values.ContainsKey("hash") &&
Page.RouteData.Values.ContainsKey("gen") &&
Page.RouteData.Values.ContainsKey("dt"))
{
if (CheckUsersData())
{
Session["id"] = Page.RouteData.Values["id"].ToString();
Response.Redirect("~/Home");
}
else
Response.Redirect("~/Login"); //if auto identification data (route values) is incorrect
}
else
Response.Redirect("~/Login");
在此先感謝!
注意!當然,我可以在global.asax中註冊三條路線,但我想找到(可能)更好的解決方案。
我試圖谷歌,我想在這裏尋找,但沒有類似的問題。我剛剛看到一個問題,如何重定向到PageNotFound頁面,但我不需要。 – Khazratbek