亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

方法重載對象

方法重載對象

C#
夢里花落0921 2021-10-23 16:44:37
我嘗試在 C# WebApi 中使用方法重載[HttpPost] public HttpResponseMessage UpdateUser(PersonalInfoModel personalInfo){}[HttpPost] public HttpResponseMessage UpdateUser(RolesModel roles){}在我調用的客戶端上: /UpdateUser(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){}以上也沒有解決錯誤:“最佳重載方法匹配有一些無效參數”我試圖在谷歌上查看但沒有成功克服這個問題。
查看完整描述

2 回答

?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

您需要使用RouteAttribute 來區分這些方法供客戶端調用。


[Route("api/Update")]

public class UpdateController

{

   [Route("PersonalInfo")]

   [HttpPost] 

   public HttpResponseMessage UpdateUser(PersonalInfoModel 

   personalInfo){}


   [Route("Roles")]

   [HttpPost] 

   public HttpResponseMessage UpdateUser(RolesModel roles){}

}

然后客戶端調用 api/Update/PersonalInfo來調用第一個方法并 api/Update/Roles調用第二個方法


希望這可以幫助。


查看完整回答
反對 回復 2021-10-23
?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

嘗試這個


[HttpPost]

[Route("/api/[controller]/personalInfo")]

public HttpResponseMessage UpdateUser(PersonalInfoModel personalInfo){}


[HttpPost] 

[Route("/api/[controller]/roles")]

public HttpResponseMessage UpdateUser(RolesModel roles){}


查看完整回答
反對 回復 2021-10-23
  • 2 回答
  • 0 關注
  • 151 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號