sub*_*ner 5 c# asp.net-web-api asp.net-web-api-routing
我想为Ex实现多个Get方法:
获取(int id,User userObj) 和Get(int storeId,User userObj)
是否可以像这样实现,我不想更改操作方法名称,因为在这种情况下我需要在URL中键入操作名称.
我正在考虑通过这个样本格式' // localhost:2342 / '来访问动作方法,它不包含动作方法名称.
Oma*_*ani 6
基本上你不能这样做,原因是两个方法都有相同的名称和完全相同的签名(相同的参数号和类型),这不会用C#编译,因为C#不允许这样做.
现在,使用Web API,如果您有两个方法具有相同的操作,例如您的示例(两个GET),并且具有相同的签名(int,User),当您尝试从客户端命中其中一个时(如来自Javascript) )ASp.NET将尝试将传递的参数类型与方法(动作)相匹配,并且由于两者都具有确切的签名,因此它将失败并引发关于歧义的异常.
因此,您可以将ActionName属性添加到方法中以区分它们,或者使用Route属性并为方法指定不同的路径.
希望有所帮助.
归档时间:
11 年,3 月 前
查看次数:
17049 次
最近记录:
8 年,6 月 前