2009-04-15 101 views
0

在我的web應用程序中。我想設置這樣的路線:C#asp.net mvc 1.0 routing

/document/quality/index 
/document/general/index 

/document/quality/detail/[id] 
/document/general/detail/[id] 

正如你可以看到我有兩個類型的文檔:一般和質量。什麼是在我的global.asax文件中設置的最好方法是什麼?我嘗試以下,但我不明白它的工作:

routes.MapRoute(
    "QualityDocument", 
    "Document/Quality/{action}/{id}", 
    new { controller = "Document", action="Index", id= ""} 
    ); 

routes.MapRoute(
    "GeneralDocument", 
    "Document/General/{action}/{id}", 
    new { controller = "Document", action = "Index", id = "" } 
    ); 

routes.MapRoute(
    "Default",            // Route name 
    "{controller}/{action}/{id}",       // URL with parameters 
    new { controller = "Home", action = "Index", id = "" } // Parameter defaults 
); 

編輯

我有現在的工作,但是當我改變行動=「」在我的ASAX文件,它不「T工作了:

的Global.asax:

routes.MapRoute(
    "GeneralDocument", 
    "Document/General/{action}/{id}", 
    new { controller = "Document", action = "blaat", id = "" } 
    ); 

DocumentController:

public void blaat(int? id) 
{ 
    Response.Write("algemeen"); 
    // return View(); 
} 

現在我收到Resource not found錯誤。但是,當我使用索引而不是blaat它正在工作。怎麼來的?

回答

1

,你應該能夠只是前面加上「一號文件」的路線,然後設置的默認值,如:

routes.MapRoute("DocumentView", 
       "Document/{controller}/{action}/{id}", 
       new { controller = "General", action="Index", id = "" } 
      ); 

與路由要完全確定切記!當設定路線時。不要讓那些意想不到的路線通過:D

看看斯科特漢塞爾曼介紹在MIX 非常有趣,你拿起一些偉大的提示!

http://www.hanselman.com/blog/Mix09FirstHalfRollupAndSessionVideos.aspx

0

試試這個:

routes.MapRoute(
    "QualityDocument", 
    "Document/Quality/index", 
    new { controller = "Document", action="Index" } 
); 

routes.MapRoute(
    "Default",            // Route name 
    "Document/Quality/details/{id}",        // URL with parameters 
    new { controller = "Document", action = "Details", id = "" } // Parameter defaults 
); 
1

也許添加在控制器屬性,但限制它是文檔控制器。

routes.MapRoute(
    "QualityDocument", 
    "{controller}/Quality/{action}/{id}", 
    new { controller = "Document", action="Index", id= ""}, 
    new { controller = "Document" } 
); 
routes.MapRoute(
    "GeneralDocument", 
    "{controller}/General/{action}/{id}", 
    new { controller = "Document", action = "Index", id = "" }, 
    new { controller = "Document" } ); 
+0

你是什麼意思加入控制器屬性?這個怎麼用? – Martijn 2009-04-15 13:58:07