我需要地图创建控制器什么是必须应对两个URL:类似路由映射
- 的“http://本地主机/ API /控制器ID = 1”(其中仅值ID可以改变)
- 的 “http://本地主机/ API /控制器/ anotherId/someconst”(其中anotherId是唯一一个变化部分)
我将其映射到这样的路由:
routes.MapHttpRoute("Test", "api/{controller}/{id}/{someconst}", new { controller = "Test", someconst = RouteParameter.Optional });
而且必须在我的控制器方法:
public void Get(int id) { ... }
public void Get(int anotherId, string someconst) { ... }
它的工作原理......不过,这并不好看......导致“串someconst”是不是设置了一个param,它的URL的只是一个常量的一部分。但是,如果我删除“字符串someconst”参数第二个网址将无法正常工作。 是否有可能将一个控制器映射到两个路径来解析这个url,使其清晰无误地假设这是一个常量?
你的意思是说你想在控制器上做另一个动作吗?你可以说“api/{controller}/{id}/{action}”,然后代替调用它“public void Get(int anotherId,string someconst)”,你可以把它叫做“public void GetSomeConst(int anotherId)”。只要确保你设置了你的默认行动 – parKing
我完全不理解你,但认为你是对的...我找到了同样的解决方案...谢谢 –