进行同一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能够调用成功。