在我的网络应用程序中,我将有一条路线:
http://server/requests/info/{id}-{guidPart} (a string)
所以我认为我很聪明并且做了一条路,所以我做了:
routes.MapRoute(
name: "Info",
url: "{controller}/{action}/{id}-{guidPart}",
defaults: new { controller = "Requests", action = "Info", id = 0, guidPart = "" }
);
然后我想,为什么我需要指定默认值,为什么不将它全部修复,除了最后一部分:
routes.MapRoute(
name: "Info",
url: "requests/info/{id}-{guidPart}"
);
但是当我去一个网址时:
http://server/requests/info/123-abc123
失败并说:
未找到404资源。
关于我做错了什么提示?
答案 0 :(得分:1)
您可以拥有静态路由,但仍需要指定默认路由到哪个Controller和Action。
routes.MapRoute(
name: "Info",
url: "requests/info/{id}-{guidPart}",
defaults: new { controller = "Requests", action = "Info", id = 0, guidPart = ""});
这个和上面的默认值之间的区别是这个UriTemplate只会尝试匹配一个以“requests / info /”开头的Uri