0
我試圖放入一些新的路線,但不知道從哪裏開始。我想這樣做是有我的路線翻譯如下:MVC 3路線問題
/transport class A/23 translated to /info/classes/A-23
我瞭解使用圖路線的基礎知識,但我不喜歡的東西上面?
我希望有人能給出建議。
我試圖放入一些新的路線,但不知道從哪裏開始。我想這樣做是有我的路線翻譯如下:MVC 3路線問題
/transport class A/23 translated to /info/classes/A-23
我瞭解使用圖路線的基礎知識,但我不喜歡的東西上面?
我希望有人能給出建議。
在我看來,你實際上是在類似UrlRewrite之後,因爲你要從一個Url到另一個Url。
但是MVC不會重寫URL - 它會根據您提供的路由模式將它們映射到控制器操作。因此,如果你問是否可以將第一個URL分割成控制器/操作對(帶參數),那麼你當然可以。您只需在正確的位置設置具有必要參數的路線。所以,你可以調用MapRoute
喜歡的東西(我會用空格連字符):
/*route pattern:*/ "transport-class-{class1}/{class2}"
/*with route defaults:*/ new { controller = "Info", action = "ViewInfo" }
然後,你可以寫出如下控制器:
public class InfoController : ControllerBase
{
public ActionResult ViewInfo(string class1, string class2)
{
//presumably get model data from the class parameters here
//and pass it as parameter to below:
return View();
}
}
雖然它也將取決於如果transport
和class
這條路線上的常量實際上也是可變的我猜 - 在這種情況下,您可以將這些常量作爲路徑參數推入,並放入控制器方法的參數列表中。
感謝您的建議。我現在會試試這個。 – 2011-03-23 11:48:07
非常感謝 – 2011-03-23 12:44:05
@Miguel Campos - 很高興能有所幫助:) – 2011-03-23 13:03:02