ID 和动作都在同一级别的 MVC 路由
MVC routing with both ID and action at same level
我希望能够制作一个同时具有同一级别的操作和 ID 的 MVC 路由。
示例:
如果呼叫
HTTP://www.something.com/F/GetMyData
然后调用 GetMyData 操作
如果呼叫
HTTP://www.something.com/F/dfeTD53F
并且没有找到具有此名称的操作它假定 "dfeTD53F" 是一个 ID 控制器 F 应该使用该 ID 调用。
这可能吗?如何实现?
这只是糟糕的应用程序设计吗?
现在,我的 route.config 中有通往 F 下所有特定操作的路线,到时候可能会变得非常混乱。
我的解决方案是创建一个 "catch all" 路由(作为最后一个条目),然后在控制器中手动处理它。
routes.MapRoute(
name: "CatchAll",
url: "{*url}",
defaults: new { controller = "CatchAll", action = "Index" }
);
这不是一个优雅的解决方案,但很好.. MVC 路由从一开始就不优雅。
我希望能够制作一个同时具有同一级别的操作和 ID 的 MVC 路由。
示例: 如果呼叫
HTTP://www.something.com/F/GetMyData
然后调用 GetMyData 操作
如果呼叫
HTTP://www.something.com/F/dfeTD53F
并且没有找到具有此名称的操作它假定 "dfeTD53F" 是一个 ID 控制器 F 应该使用该 ID 调用。
这可能吗?如何实现?
这只是糟糕的应用程序设计吗?
现在,我的 route.config 中有通往 F 下所有特定操作的路线,到时候可能会变得非常混乱。
我的解决方案是创建一个 "catch all" 路由(作为最后一个条目),然后在控制器中手动处理它。
routes.MapRoute(
name: "CatchAll",
url: "{*url}",
defaults: new { controller = "CatchAll", action = "Index" }
);
这不是一个优雅的解决方案,但很好.. MVC 路由从一开始就不优雅。