我正在编写一个MVC控制器,我需要处理这两个数据,数据返回以及一个漫长的轮询“数据已经改变”,就像SAME(!)url的行为一样。我无法做到这一点 – 我正在为已经存在的应用程序实现代理,所以我无法对API进行任何扩展/修改。
我的主要问题是:
* POST操作必须立即完成。
* GET操作需要更长时间(可能需要几个小时)。
我可以以某种方式重写两个去不同的控制器吗?替代方案将是…嗯…使两个异步,只是POST正在完成三,然后。
有人对此发表评论?
解决方法
您应该能够在路由级别使用约束来控制url所在的控制器/操作。
routes.MapRoute( "route that matches only GETs for your url","your url",new { controller = "some controller",action = "some action" },new { httpMethod = new HttpMethodConstraint("GET") } ); routes.MapRoute( "route that matches only POSTs for your url",new { controller = "some other controller",action = "some other action" },new { httpMethod = new HttpMethodConstraint("POST") } );