MVC 中ajax 调用Webservice 或WCF 问题

添加一个MVC 项目 在里面添加一个 Webservice 然后去浏览 这个Webservice1.asmx ,然后 点击默认的 Hello Word 方法,点 “调用”。 

无法找到资源。

知道问题一定在 路由上,因为找不到这个路由。在MVC 中请求都会找路由表,然后按路由匹配,由于找不到对应的路由所以报 "无法找到资源”。

然后我在路由规则里加上:constraints: new { controller = @"^(?!webservic)w*$" }// 我理解是表示controller 不匹配webservice 开头的.然后再去调用 发现好了。

但这时候正常的MVC 路由页面有问题了 。估计是 对上面代码 的理解有误,希望高手说明下上面那个约束什么作用。

找了一会资料终于解决了

 在 路由设置前 加上 routes.Ignore("{*allasmx}", new { allasmx = @".*.asmx(/.*)?" }); 表示 对 .asmx 文件的请求忽略 也就是不走路由。WCF 就要加上

routes.Ignore("{*allsvc}", new { allsvc = @".*.svc(/.*)?" });

原文地址:https://www.cnblogs.com/startlearn/p/4125330.html