【发布时间】:2018-12-30 14:58:30
【问题描述】:
我尝试在 C# WebApi 中使用方法重载
[HttpPost]
public HttpResponseMessage UpdateUser(PersonalInfoModel personalInfo){}
[HttpPost]
public HttpResponseMessage UpdateUser(RolesModel roles){}
在我调用的客户端上: /更新用户(json) 假设我们要更新用户的个人信息,因此 json 将如下所示:
{firstName: "testUser", lastName: "testUser", age: 20}
它应该与如下所示的 PersonalInfoModel 匹配:
public class PersonalInfoModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
}
我的想法是更新用户信息的不同部分并保持 很清楚,意思是用不同的对象调用相同的方法,我想 服务器上的 UpdateUser 会知道要使用什么函数,但它失败了 因为服务器不知道使用什么路由。
我尝试做的下一件事是在服务器中只调用一个路由,如下所示:
[HttpPost]
public HttpResponseMessage UpdateUser(dynamic obj){
return Update(obj);
}
public Update(PersonalInfoModel personalInfo){}
public Update(RolesModel roles){}
上面的错误也没有工作: “匹配的最佳重载方法有一些无效参数” 我试图在谷歌上查看,但没有成功克服这个问题。
【问题讨论】:
-
你能显示来自调用 api 的客户端的请求正文吗?
-
当然@DheerajKumar,我用这个新信息更新了这个问题
标签: c# asp.net-web-api asp.net-web-api2 asp.net-web-api-routing