【发布时间】:2014-06-21 08:07:25
【问题描述】:
我正在向控制器中的同一个操作方法发送多个请求,所有这些请求都有一些常见的查询字符串属性和一些特定于该请求的属性。
request1 : http://localhost/home/test?a=a1&b=b1&c=c1&d=d1....about 25 个参数
request2 : http://localhost/home/test?a=a1&b=b1&j=j1&k=k1...大约 20 个参数
同样的 request 3 , request4,etc...
我在 homecontroller 的 mvc 中的操作方法如下..
public string test(string a, string b, string c, string d, ...大约 50 个参数)
这是完美的工作..
但是当我把这段代码移动到 web api 时,它不再工作了..
此外,如果我尝试只使用两个参数,它可以工作并且我可以获得这两个参数.. 公共字符串测试(字符串 a,字符串 b)
我无法控制我在应用程序中收到的请求,因为它来自第 3 方主机应用程序,因此方法名称和参数无法更改...
route.config中mvc中配置的路由是标准的..
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
我在 webapiconfig 中的类似线路上为 webapi 配置了单独的路由..
config.Routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
任何想法如何解决这个问题..
谢谢 阿纳布
【问题讨论】:
-
您是否尝试过在操作上使用 Route 属性?
-
50个参数的方法!为什么不使用模型呢?
-
@Yasser :请求来自我无法控制的第 3 方..
标签: asp.net-mvc asp.net-mvc-4 asp.net-web-api asp.net-web-api-routing