我们想要一条看起来像这样的路线:
/account/123/dosomething/234
在这种情况下,account
将成为控制器,requesttrafficid
将是行动,我想。我假设我可以这样定义这条路线:
{controller}/{accountId}/{action}/{id}
在这种情况下,这两个ID只会成为操作的参数。
问题是:可以为Web API执行类似的操作吗?
我们的普通MVC控制器只是返回视图和其他静态内容。 我们所有的数据都来自API。 我们希望我们的路线尽可能接近,如下所示:
api/account/123/dosomething/234
根据我的理解,account
不是API控制器,而是dosomething
。这两个ID再次成为参数。但是我如何定义这条路线?我只是硬编码“帐户”部分吗?
答案 0 :(得分:1)
如果您只关注能够使路线的行动部分相同,您有两种选择:
您
如果您不遵循此约定,则只需指定使用适当属性的方法:[Method]Action
如果您想遵循惯例,但想要为路由目的自定义操作名称,则可以使用// These are functionally equivalent:
public JsonResult GetSomething(int id) { ... }
[HttpGet]
public JsonResult DoSomething(int id) { ... }
属性:
ActionName
答案 1 :(得分:0)
使用AttributeRouting
,这是小菜一碟:http://attributerouting.net。您只需将占位符放在URL中的正确位置,MVC就会处理其余的内容。