栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将JSON对象作为参数传递给MVC控制器

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将JSON对象作为参数传递给MVC控制器

如果您想将自定义JSON对象传递给MVC操作,则可以使用此解决方案,它的工作原理很吸引人。

    public string GetData()    {        // InputStream contains the JSON object you've sent        String jsonString = new StreamReader(this.Request.InputStream).ReadToEnd();        // Deserialize it to a dictionary        var dic =Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<String, dynamic>>(jsonString);        string result = "";        result += dic["firstname"] + dic["lastname"];        // You can even cast your object to their original type because of 'dynamic' keyword        result += ", Age: " + (int)dic["age"];        if ((bool)dic["married"]) result += ", Married";        return result;    }

该解决方案的真正好处是,您不需要为每个参数组合定义一个新类,并且除此之外,您可以轻松地将对象转换为其原始类型。

更新

现在,您甚至可以合并GET和POST操作方法,因为您的post方法不再像这样具有任何参数:

 public ActionResult GetData() {    // GET method    if (Request.HttpMethod.ToString().Equals("GET"))        return View();    // POST method     .    .    .    var dic = GetDic(Request);    .    .    String result = dic["fname"];    return Content(result); }

您可以使用这样的帮助方法来简化您的工作

public static Dictionary<string, dynamic> GetDic(HttpRequestbase request){    String jsonString = new StreamReader(request.InputStream).ReadToEnd();    return Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(jsonString);}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/449264.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号