最近在使用webAPI進行post傳遞多個參數,其中出現的錯誤進行共享
1。 缺少編譯器要求的成員“Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create”
解決辦法 :在Nuget管理其中,搜索“Microsoft.CSharp” 並安裝到相應的解決方案中
- “Microsoft.CSharp.RuntimeBinder.RuntimeBinderException”類型的未經處理的異常;其他信息: “object”未包含“Id”的定義
原因是因爲ajax傳遞的參數問題,
參數如下:
參數1:data:JSON.stringify({noticeId:10086,contact:contactlist})
這種情況下,後臺解析不到對應的Id和name
參數2:data:JSON.parse(JSON.stringify({noticeId:10086,contact:contactlist}))
或者data:{id:10086,name:"移動通信"}
後臺才能解析到對應的id和name ,然後轉換成你想要的數據格式
這樣在傳遞參數時候,就不用在後臺再進行創建臨時類接受數據了。
後臺代碼:
[HttpPost]
public string Notice_Log(dynamic obj )
{
List<contact> obj1 = JsonConvert.DeserializeObject<List<contact>>(Convert.ToString(obj.contact));
int id = JsonConvert.DeserializeObject<int>(Convert.ToString(obj.noticeId));
var strName = Convert.ToString(obj.noticeId);
return null;
}
}
希望對問題解決有一些幫助