我希望在用户根据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 }
);
我怎样才能做到这一点?
答案 0 :(得分:1)
您可以尝试这样的事情:
routes.MapRoute(
name: "Job Number",
url: "{jobno}",
defaults: new { controller = "Home", action = "Job" },
new { jobno = @"[0-9]*" }
);
并将其置于其他路线之上。添加的参数是避免路由捕获http://localhost:50431/foobar
之类的网址,但只包含包含数字的网址。
请注意我目前无法对此进行测试,因此您可能需要稍微调整一下。
答案 1 :(得分:0)
我认为这是最好的解决方案:
routes.MapRoute(
name: "Job Number",
url: "{jobno}",
defaults: new { controller = "Home", action = "Job", .jobno = UrlParameter.Optional },
constraints: new { jobno = @"[0-9]*" }
);
我已经对此进行了测试并且工作正常,他在评论中的回复对我来说无效。