webAPI 使用dynamic傳遞參數 摒棄臨時類

最近在使用webAPI進行post傳遞多個參數,其中出現的錯誤進行共享

1。 缺少編譯器要求的成員“Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create”

解決辦法 :在Nuget管理其中,搜索“Microsoft.CSharp” 並安裝到相應的解決方案中
webAPI 使用dynamic傳遞參數   摒棄臨時類

  1. “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;

}

}

希望對問題解決有一些幫助

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章