c# MVC 如何接收 Json 数据



public class DemoModel
{
        public string Name { get; set; }
        public int Age { get; set; }
}


[HttpPost]
public ActionResult About(DemoModel model)
{
            return Json(model);
}

[HttpPost]
public ActionResult About(string Name, int Age)
{
            return Json(model);
}

看到本段代码是不是很熟悉,常用了是吧,现在换一种场景,A与B协作,B向A发送回调,A知道B回想自己发送回调数据,且发送的是Json格式数据,但格式内容B没有给文档,

此时测试确实可以收到B发送的回调请求,但是就是不知道数据格式很着急,这时B暂时联系不上,且B的项目已经上线运行良好不会出问题,此时怎么也得想办法知道B回调接口

到底发送了啥子呢?

有开发经验的小伙伴说好说这还不容易吗?

看招

//Post参数来了
StringBuilder sb = new StringBuilder();
string[] keys = Request.Form.AllKeys;
for (int i = 0; i < keys.Length; i++)
{
                sb.Append(keys[i] + ": " + Request.Form[keys[i]] + "<br>");
}
//Get参数来了
StringBuilder sb = new StringBuilder();
foreach (String key in Request.QueryString.AllKeys)
{
       sb.Append("Key: " + key + " Value: " + Request.QueryString[key]);
}

哎呦哦我去,咋全部都是空呢,不对啊根据开发经验 Post,Get两种方式总得是一种吧

但是就是没有是不是很着急呢

其实包括我在呢的许多开发小伙伴在使用MVC开发时因为太好用了好多东西微软都为大家准备好了,因为太方便了所以导致我们有些情况就想当然了

下面说出微软内部是杂实现的吧

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
    base.OnActionExecuting(filterContext);
    DemoModel model = filterContext.ActionParameters["model"] as DemoModel;
}

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
    base.OnActionExecuting(filterContext);
    filterContext.HttpContext.Request.InputStream.Position = 0;
    using (var reader = new StreamReader(filterContext.HttpContext.Request.InputStream))
    {
        string json = reader.ReadToEnd();
        //Json字符串得到了知道其他小伙伴发送过来的Json数据格式了
    }
}    

本文想说明的问题大家看懂了吗,喜欢的话点个赞呗!

Ps:补充下

小伙伴注意①②是不一样的喽

本文想表达的是

后台Http请求时 发送给你的是json格式 当你不知道对方会发送什么格式的数据给你【虽然很扯但是但是你懂的。】

此时无论对方给不给数据文档,我们都知道他发送的啥子格式的数据了

本文想说明的问题大家看懂了吗,喜欢的话点个赞呗!

原文地址:https://www.cnblogs.com/codedreams/p/9600160.html

时间: 2024-10-02 06:57:32

c# MVC 如何接收 Json 数据的相关文章

.net core 1.1.0 MVC 控制器接收Json字串 (JObject对象) (二)

.net core 1.1.0 MVC 控制器接收Json字串 (JObject对象) (二) .net core 1.1.0 MVC 控制器接收Json字串 (JObject对象) (一) 上一篇主要是以Form键值对提交的数据,转为Json方式处理,有时我们直接以Body字串提交,我们要解决以下两种方式提交的取值问题: JObject $('#btn_add').click(function (e) { var a = $('#tb_departments').bootstrapTable(

SpringMVC中controller接收Json数据

SpringMVC中controller接收Json数据 1.jsp页面发送ajax的post请求: function postJson(){ var json = {"username" : "imp", "password" : "123456"}; $.ajax({ type : "post", url : "<%=basePath %>ajaxRequest", co

ThinkPHP中使用ajax接收json数据的方法

本文实例讲述了ThinkPHP中使用ajax接收json数据的方法.分享给大家供大家参考.具体分析如下: 这里通过ThinkPHP+jquery实现ajax,扩展了下,写了个查询,前台代码如下: 首先需要引入jquery.js,主要代码如下: 1 function ajax(id,pic){ 2 3 //由于ThinkPHP不解析JavaScript里的ThinkPHP常量,所以需要先在这里定义. 4 5 var URL='__URL__'; 6 7 $.ajax({ 8 9 url: URL+

SpringMVC接收JSON数据遇到的问题

项目简单介绍: 后台用spring mvc + fastjson | gson 这里以fastjson为例 数据层是mybatis 数据库是sqlserver 2008(我是不建议用的,没办法) 1.通过spring接收json需要配置后台spring 配置文件,加入  <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJ

使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇

jQuery提供的ajax方法能很方便的实现客户端与服务器的异步交互,在asp.net mvc 框架使用jQuery能很方便地异步获取提交数据,给用户提供更好的体验! 调用jQuery的ajax方法时,jQuery会根据post或者get协议对参数data进行序列化; 如果提交的数据使用复杂的json数据,例如: {userId:32323,userName:{firstName:"李",lastName:"李大嘴"}} 那么服务器是无法正常接收到完整的参数,因为j

Spring MVC如何进行JSON数据的传输与接受

本篇文章写给刚接触SpingMVC的同道中人,虽然笔者本身水平也不高,但聊胜于无吧,希望可以给某些人带来帮助 笔者同时再次说明,运行本例时,需注意一些配置文件和网页脚本的路径,因为笔者的文件路径与读者的未必相同 首先准备以下 jar包:commons-logging-1.1.3.jarjackson-core-asl-1.9.2.jarjackson-mapper-asl-1.9.2.jarspring-aop-4.0.6.RELEASE.jarspring-beans-4.0.6.RELEAS

在JFinal的Controller中接收json数据

JFinal中接收URL中的参数或者model中的参数是很方便的,但是对于web2.0的网站来说,经常会以json方式提交比较复杂的数据,比如一个查询,包含了各种过滤条件和排序分页,前端脚本可能提交的数据是这样的: {     "type":1,     "key":"keyword",     "paging":{         "size":50,         "index":

PHP如何接收json数据

以前一直在写一些网站,很少涉及到接口的东西.最近公司在做一个平台,需要往接口上发送json数据.闲话少叙,直接上干货. 在php中可以通过如下方式获取: file_get_contents("php://input"); 分析: php做网页的表单提交 早年网页表单的提交,都是用$_POST获取请求参数,实际上在http请求头中是用kv值的形式存在,如: php在接收到这种请求的时候,php底层系统会将这种字符串解析并存放进$_POST变量中,所以在php中就可以通过$_POST获取这

springmvc接收json数据的常见方式

经常使用Ajax异步请求来进行数据传输,传的数据是json数据,json数据又有对象,数组.所有总结下springmvc获取前端传来的json数据方式:1.以RequestParam接收前端传来的是json数据不多时:[id:id],可以直接用@RequestParam来获取值@Autowiredprivate AccomodationService accomodationService; @RequestMapping(value = "/update")@ResponseBody