首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WebApi路由中参数名的松散绑定

WebApi路由中参数名的松散绑定
EN

Stack Overflow用户
提问于 2013-01-28 10:56:40
回答 1查看 1.2K关注 0票数 0

目前,我们使用以下路由规则来满足所有控制器的需要;优点是我们不必为每个控制器中的每个操作定义一个路由:

代码语言:javascript
运行
复制
routes.MapHttpRoute("3", "{controller}/{action}/{arg1}/{arg2}/{arg3}");
routes.MapHttpRoute("2", "{controller}/{action}/{arg1}/{arg2}");
routes.MapHttpRoute("1", "{controller}/{action}/{arg1}");
routes.MapHttpRoute("0", "{controller}/{action}");

但是,由于这一点,方法中的参数名称必须匹配;与此类似:

代码语言:javascript
运行
复制
// Example method signature
public ResponseDto GetResponse(int arg1, int arg2)

如果参数名称更改为更友好的名称(例如:显示每个参数的意图的名称,而不是模糊的"arg1“名称),则如下所示:

代码语言:javascript
运行
复制
// Better example method signature
public ResponseDto GetResponse(int userId, int itemId)

除非:

  • 路由和参数名是显式定义的。
  • 参数在使用查询字符串时传递。

是否有办法设置WebApi路由,以便根据参数数自动使用正确的操作,而不是参数名称?

EN

Stack Overflow用户

回答已采纳

发布于 2013-01-28 15:06:52

看起来,您正在尝试做一些类似于这篇关于自定义参数绑定的好博客文章中描述的事情。正如你所发现的,没有什么能支持你想要做的事情。

在概念层面上,HTTP是围绕资源的概念构建的。URI应该标识特定的资源。使用通用位置“参数”似乎模糊了资源的特殊性。使用URI的查询字符串似乎可以更好地满足您的用例。这样,您的HTTP表达了对给定资源所期望的参数的明确意图。

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14560501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档