0

我想在用户根据 ID 在浏览器中输入 URL 时重定向用户。例如,用户输入:

http://localhost:50431/10213

他们将被重定向到:

http://localhost:50431/home/job/10213

默认路线:

routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{jobno}",
                defaults: new { controller = "Home", action = "Job", jobno = UrlParameter.Optional }
            );

我怎样才能做到这一点?

4

2 回答 2

1

你可以尝试这样的事情:

routes.MapRoute(
  name: "Job Number",
  url: "{jobno}",
  defaults: new { controller = "Home", action = "Job" },
  new { jobno = @"[0-9]*" }      
);

并将其放在另一条路线之上。添加的参数是为了避免路由捕获 url 之类http://localhost:50431/foobar的,但只捕获包含数字的 URL。

请注意,我目前没有办法对此进行测试,因此您可能需要稍微调整一下。

于 2013-02-20T09:48:35.713 回答
0

我认为这是最好的解决方案:

routes.MapRoute(
  name: "Job Number",
  url: "{jobno}",
  defaults: new { controller = "Home", action = "Job", .jobno = UrlParameter.Optional },
  constraints: new { jobno = @"[0-9]*" }      
);

我已经对此进行了测试并且它工作正常,他在评论中的回复对我来说不能正常工作。

于 2013-10-26T17:47:17.733 回答