Complex type is getting null in a ApiController parameter

前端 未结 4 1238
借酒劲吻你
借酒劲吻你 2020-11-27 03:29

I don´t know why my parameter \"ParametroFiltro Filtro\" is getting null, the other parameters \"page\" and \"pageSize\" is getting OK.

public class Parametr         


        
4条回答
  •  长情又很酷
    2020-11-27 04:11

    If you append json data to query string, and parse it later in web api side. you can parse complex object too. It's useful rather than post json object, espeicaly in some special httpget requirement case.

    //javascript file 
        var data = { UserID: "10", UserName: "Long", AppInstanceID: "100", ProcessGUID: "BF1CC2EB-D9BD-45FD-BF87-939DD8FF9071" };
        var request = JSON.stringify(data);
        request = encodeURIComponent(request);
    
        doAjaxGet("/ProductWebApi/api/Workflow/StartProcess?data=", request, function (result) {
            window.console.log(result);
        });
    
        //webapi file:
        [HttpGet]
        public ResponseResult StartProcess()
        {
            dynamic queryJson = ParseHttpGetJson(Request.RequestUri.Query);
                int appInstanceID = int.Parse(queryJson.AppInstanceID.Value);
            Guid processGUID = Guid.Parse(queryJson.ProcessGUID.Value);
            int userID = int.Parse(queryJson.UserID.Value);
            string userName = queryJson.UserName.Value;
        }
    
        //utility function:
        public static dynamic ParseHttpGetJson(string query)
        {
            if (!string.IsNullOrEmpty(query))
            {
                try
                {
                    var json = query.Substring(7, query.Length - 7); //seperate ?data= characters
                    json = System.Web.HttpUtility.UrlDecode(json);
                    dynamic queryJson = JsonConvert.DeserializeObject(json);
    
                    return queryJson;
                }
                catch (System.Exception e)
                {
                    throw new ApplicationException("can't deserialize object as wrong string content!", e);
                }
            }
            else
            {
                return null;
            }
        }
    

提交回复
热议问题