2013-12-10 27 views
1

我創建一個MVC項目,我有以下鏈接導致的網站列表爲登錄用戶創建自定義路線:ASP.NET MVC沒有後備

http://[server]/Members/Websites 

現在我喜歡下的用戶,這將導致服務連接頁面的網站部分添加新的定製路線:

http://[server]/Members/Websites/Connect-to-service/999 

,其中「999」是連接該網站的ID。

我定義以下的路徑,爲載人(將其默認路由以上):

routes.MapRoute(
    name: "myRoute", 
    url: "Members/Websites/Connect-to-service/{id}", 
    defaults: new { controller = "Members", action = "Connect_To_Service" } 
); 

現在,如果我輸入網址的「http:// [服務器] /會員/網站/連接到服務/ 999「它加載我的網頁罰款。

如果我輸入url「http:// [server]/Members/Websites/Connect-to-service /」,它會加載網站頁面。

我想要的是當加載「http:// [server]/Members/Websites/Connect-to-service /」時,它會重定向到「http:// [server]/Members/Websites /「(在瀏覽器url中),或者拋出一個找不到頁面的錯誤。

可以這樣做嗎?

感謝

回答

3

你可以在Connect_To_Service動作配置此:

public ActionResult Connect_To_Service(int? id = null) 
{ 
    if (!id.HasValue) 
    { 
     // Either: 
     return RedirectToAction("Websites", "Members"); 

     // Or: 
     return HttpNotFound(); 
    } 

    // An id is provided. Process.. 
} 

您可能需要通過添加一個默認值id改變你的路線:

defaults: new { controller = "Members", action = "Connect_To_Service", id = UrlParameter.Optional } 
+0

的偉大工程!謝謝 – developer82