代码改变世界

ASP.NET WebApi dynamic参数传递

2014-03-06 22:28  天穹维都  阅读(2213)  评论(0编辑  收藏  举报

 

最近做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)

 

111.jpg

原文出处:http://www.l-o-ve.com/forum.php?mod=viewthread&tid=44&from=portal