Areas功能
可以實現這種類型的路由,而不領域,但作爲控制器的數量變大網站的可維護性會減弱。本質上,你所做的是將控制器名稱硬編碼到路由定義中,這意味着你必須爲每個新的管理控制器添加新的路由映射。以下是您可能想要設置不帶區域的路線的幾個示例。
routes.MapRoute("AdminQuestions", // Route name
"admin/question/{action}/{id}", // URL with parameters
new { controller = "AdminQuestion", action = "Index" } // Parameter defaults
);
routes.MapRoute("AdminUsers", // Route name
"admin/user/{action}/{id}", // URL with parameters
new { controller = "AdminUser", action = "Index" } // Parameter defaults
);
或者,您也可以通過管理控制器路線的一切,但它很快就會變得非常混亂與您的控制器操作執行多個角色。
routes.MapRoute("Admin", // Route name
"admin/{action}/{type}/{id}", // URL with parameters
new { controller = "Admin", action = "Index" } // Parameter defaults
);
與您AdminController行動(S)看起來像:
public virtual ActionResult Create(string type, int id)
{
switch (type)
{
case 'question':
// switch/case is code smell
break;
case 'user':
// switch/case is code smell
break;
// etc
}
}
它像我想要一個控制器「管理員」和兩個動作「用戶」和「刪除」 – 2010-08-04 19:40:33
較長的路線必須是前短路線。發佈您的路由代碼。 – 2010-08-04 19:41:52
對不起,我還沒有它......只是想知道如何使更改默認處理這個謝謝 – 2010-08-04 19:46:52