我想在MVC 5中设置属性路由。我有一个默认行为,但行动根本不在我的模板中。这是我的旧路线。MVC 5属性路由 - 默认行动不在模板中
routes.MapRoute(null,
"Article/{id}/{*path}",
new { controller = "Article", action = "Index" , id = UrlParameter.Optional, path = UrlParameter.Optional }
);
这将满足/文章/ 1 /测试的路线,而无需使用所述索引中的路径(即/文章/索引/ 1 /测试)的作用。
我也有另一种方法,将被默认的地图路径捕获.... /文章/项目。
我的问题是我无法弄清楚如何在MVC 5中使用新的属性路由进行此路由设置。下面的代码有些作品,但我不想为每种方法添加路由。我希望能够在类的顶部放置一些能够满足所有方法的东西,并且我只是将其他东西添加到我的Index方法中。
[RoutePrefix("Article")]
public class ArticleController: BaseController
{
[Route("{id?}/{*path?}")]
public ActionResult Index(int id, string path)
{
}
[Route("Items")]
public ActionResult Items()
{
}
[Route("TestMethod")]
public ActionResult TestMethod()
{
}
}
我希望能得到像下面这样的东西。问题是我不得不把索引放在我的路径前面,就像.../Index/1/test。
[RoutePrefix("Article")]
[Route("{action=Index}")]
public class ArticleController : BaseController
{
Route[("{id?}/{*path?}")]
public ActionResult Index(int id, string path)
{
}
public ActionResult Articles()
{
}
public ActionResult TestMethod()
{
}
}
可以肯定的是,你想为你的第一个动作写'Article/1/test',为第二个写'Items/Items'呢? –