2010-01-13 28 views

回答

1

您可以使用通配符路由將任意數量的參數傳遞給某個操作,例如,像"../{topic}/{subtopics*}"。在URL中的主題之後指定的所有內容都將按原樣傳遞給動作的參數,然後您可以將該值分割爲單獨的子主題。

Scott Guthrie在大約35:20提到了this video中的技術。

+0

不錯的技術。如果顧客主張,那一定是好的。 – 2010-01-14 21:17:49

1

我認爲唯一的方法就是將區域映射到{controller}和主題{action},然後子主題只需要作用在參數上。

MVC確實將您限制爲控制器與操作的二維數組。

+0

這聽起來像我會需要幾條路線和幾個控制器過載。 – 2010-01-13 23:20:58

+0

不,默認的會與你上面描述的一樣。模型活頁夾將嘗試將URL中的任何額外'數據'映射到其所選動作的參數。 – 2010-01-13 23:24:58

1

我們正是用反射和調用方法來做到這一點。

我們增加了一個自定義.NET 404處理器對IIS和該處理程序採取的URL的部分,並調用它們沿着

namespace area{ 

class topic 
{ 

void subtopic(param object[] subsubtopic) 
{ 
//do page 
}  
} 

} 

顯然網址的精確映射到方法簽名將改變線路。

所以mydomain.com/pages/blogs/newblogs/tech 或mydomain.com/pages/blogs/newblogs/health

可能看起來像

namespace pages{ 

class blogs 
{ 

void newblogs(string subject) 
{ 
if(subject == "tech") 
    subject = "ace"; 
if(subject == "health") 
    subject = "itch it"; 
}  
} 

} 

你也可能想看看在到restful urls