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