在 ASP.Net MVC 中,我想要 2 条不同的路由:
和
在 Foo 类中,我有 2 个返回 ActionResult 的方法
public ActionResult DetailsById(int id)
{
. . . some code
}
和
public ActionResult DetailsByName(string name)
{
. . . some code
}
如何设置 2 条路由,以便如果参数是 int,则转到 DetailsById,否则转到 DetailsByName?
最佳答案
您可以对第一条路线使用路线约束。
routes.MapRoute("DetailsById",
"foo/{id}",
new { controller = "foo", action = "DetailsById" },
new { id = @"\d+" } // Parameter constraints
);
routes.MapRoute("DetailsByName",
"foo/{id}",
new { controller = "foo", action = "DetailsByName" }
);
第一个路由将只接受与正则表达式匹配的 ID(只接受数字)。如果它不匹配第一条路线,它将转到第二条。
关于asp.net-mvc - 在 ASP.Net MVC 路由中,如何路由 2 个看起来相同但类型不同的不同路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7149672/