C# 路由到具有相同结构的地址
我是MVC和web开发的新手,我有以下途径:C# 路由到具有相同结构的地址,c#,asp.net-mvc,routes,C#,Asp.net Mvc,Routes,我是MVC和web开发的新手,我有以下途径: //"/display/flight1/4" - upload frm flight1 file, show as animation(4 times in a sec), show end alert routes.MapRoute( name: "uploadPlaneData", url: "display/{fileName}/{times}",
//"/display/flight1/4" - upload frm flight1 file, show as animation(4 times in a sec), show end alert
routes.MapRoute(
name: "uploadPlaneData",
url: "display/{fileName}/{times}",
defaults: new { controller = "Display", action = "UploadPlaneData", fileName = "flight1", times = 4 }
);
//"/display/127.0.0.1/5400" - check plane place(port 5400 ip 127.0.0.1)(lat, lon) and show a plane icon on the map
routes.MapRoute(
name: "showPlaneIcon",
url: "display/{ip}/{port}",
defaults: new { controller = "Display", action = "ShowPlaneIcon", ip = "127.0.0.1", port = 5402 }
);
问题是,如果我试图导航到第二页,它会显示第一页。我把第二个放在代码第一个上面,然后导航到顶部,我的问题是如何导航到
/display/127.0.0.1/5400
和/display/flight1/4
两条路径中的属性可以尝试使用正则表达式。例如:
routes.MapRoute(
name: "uploadPlaneData",
url: "display/{fileName}/{times}",
defaults: new { controller = "Display", action = "UploadPlaneData", fileName = "flight1", times = 4 },
constraints: new { fileName = @"\w+", times = @"\d+" }
);
routes.MapRoute(
name: "showPlaneIcon",
url: "display/{ip}/{port}",
defaults: new { controller = "Display", action = "ShowPlaneIcon", ip = "127.0.0.1", port = 5402 },
constraints: new { ip = @"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b", port = @"\d+" }
);
很抱歉不能给出一个好的答案。我通常使用属性路由,所以我对MVC路由不是很熟悉。我错误地假设它是相同的。@John我做了与您提供的链接相同的操作(我在两条路径中都添加了regex),现在它可以工作了,谢谢您的帮助如果您添加答案,我将向上投票:)