进行同一Controller里的不同方法Get请求时,总是定位到Controller里的同一个方法的解决

环境:我用的是webapi+EF4.0+html搭建的环境

问题:进行同一Controller里的不同方法Get请求时,总是定位到Controller里的同一个方法,具体如下:

  1、Controller里有如下两个方法:

     [HttpGet]
        public HttpResponseMessage AddPersonToPersonInfo(string pno, string pname);

    [HttpGet]
        public HttpResponseMessage ModifyPersonToPersonInfo(string id, string pno, string pname);

     2、前台请求如下:

       var dataParas = '{"pno":"' + pno + '","pname":"' + pname + '"}';
                $.get("/api/PersonManage/AddPersonToPersonInfo", eval('(' + dataParas + ')'), function (data) {
                    if (data != null && data.Status.Code == 200) {

        }

      );

       var dataParas = '{"id":"' + idstr + '","pno":"' + pno + '","pname":"' + pname + '"}';
                $.get("/api/PersonManage/ModifyPersonToPersonInfo", eval('(' + dataParas + ')'), function (data) {
                    if (data != null && data.Status.Code == 200) {

        }

      );

解决方法:

  首先可以通过监控工具监控http请求,看是否发送了请求,然后到Controller里设置断点进行调试

  当我进行AddPersonToPersonInfo()方法请求时,总是进入Controller里的ModifyPersonToPersonInfo()的方法,后面进过调试,突然意识到,WebApiConfig配置文件里有个默认的id参数配置的,所以把ModifyPersonToPersonInfo(string id, string pno, string pname)里的参数id改为iid,前台也要做相应的改为iid,下次调用时,表明这个方法里多了一个参数iid要拥有iid的才能配对成功。也能使得AddPersonToPersonInfo能够调用成功。

  

posted @ 2015-04-18 10:40  第九剑  阅读(1447)  评论(0编辑  收藏  举报