最近做API开发中遇到的问题 就是前端如何传递一个复杂的参数体给WebApi,在一番探索下,发现可以使用dynamic来实现
先分享给大家
首先前端请求部分ajax代码: function OnUpdate() {
var select = $("#u_datagrid").datagrid('getSelected');
var USER_ID = "xxx";
var USER_NM = select.User_Name;
var EMAIL = "1";
var USER_PWD = "2";
var USER_STATUS = "1";
var data = '{"USER_ID":"' + USER_ID + '","USER_NM":"' + USER_NM + '","EMAIL":"' + EMAIL + '","USER_PWD":"' + USER_PWD + '","USER_STATUS":"' + USER_STATUS + '"}';
debugger; $.ajax({ type:'Put', url: apiUri + 'Base_UserInfo?id='+select.User_ID, data: data, contentType: "application/json; charset=utf-8", dataType: 'json', success: function (results) { if (results.State) { $.messager.alert('温馨提示', results.Message + results.JsonData.toString(), 'info'); requestData(1, 10); closeWin('#edit'); } else { $.messager.alert('警告', results.Message, 'warnig'); } } , error: function (XMLHttpRequest, textStatus, errorThrown) { $.messager.alert('错误', textStatus, 'error'); } }) }
后端接受之API controller代码:
public ResultData Put(string id, [FromBody]dynamic model) { res.State = true; res.Message = "OK"; res.JsonData = model.USER_NM;//从前端传来的请求数据 return res; }
以上可以满足我们的需求 ,欢迎大家指正
最终实现的效果如下图:
|
<ignore_js_op>
-
111.jpg (47.85 KB, 下载次数: 0)
|
原文出处:http://www.l-o-ve.com/forum.php?mod=viewthread&tid=44&from=portal