0

我尝试编写自定义路由。总是出现 404 错误,出了什么问题。我阅读了有关路由的信息,但没有弄清楚。我想显示如下代码的内容,名称必须在 aZ 和 0-9 之间。谢谢。

{action}/{name} /details/kll219dkl

  routes.MapRoute(
             name: "Default",
             url: "{controller}/{action}/{id}",
              defaults: new { controller = "home", action = "index", id = UrlParameter.Optional }
             );

            routes.MapRoute(
                name: "test",
                url: "details/{name}",
                defaults: new { controller = "Test", action = "Details", name = "ujElk392ow" }
            );

只是为了展示是有效的

 public ActionResult Details(string name)
 {
    return Content(name);
 }
4

2 回答 2

0

怎么样:

routes.MapRoute(
    name: "test",
    url: "{controller}/details/{name}",
    defaults: new { controller = "Test", action = "Details", name = String.Empty },
    constraints: new { name = @"^[a-zA-Z0-9]+$" }
);

这会给你:

Url:                        Mapped Destination:
/Test/details/kll219dkl     TextController->Details(name: "kll219dkl")
于 2013-09-06T12:50:35.180 回答
0

除了布拉德的回答。尝试更改路线的顺序。运行时采用适合请求的第一条路线。因此,必须从最确定到最一般定义路线。在您的订单运行时将始终采用默认路线。

于 2013-09-08T15:03:45.737 回答