2009-04-15 102 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