HttpPost in asp.net MVC 4

本文关键字:MVC net asp in HttpPost | 更新日期: 2023-09-27 18:01:53

我正在测试一个日历应用程序的推送通知。当我在日历应用程序上创建一个事件时,我的网站获得一个带有JSON字符串的HttpPost请求。我写了这样的代码,但是我无法在我的action方法中接收JSON字符串。

       [HttpPost]
       public ActionResult Push(String jsonReq)
       {
         Console.write(jsonReq);
         return View();
       }

当我以与JSON相同的结构创建模型时,我可以接收请求。它似乎与JSON结构紧密耦合?我在使用ASP。Net MVC 4。

     [HttpPost]
    public ActionResult Push(JSONModel jsonModel)
    {
        return View();
    }

HttpPost in asp.net MVC 4

. NET MVC模型绑定的工作方式如下——它解析请求,试图找到它的参数和Action参数之间的名称对名称的对应,如果找到,则实例化后者。您没有发送名称为jsonReq的参数,因此您无法在操作方法中接收某些内容。

如果你真的想使用计划json字符串而不让ASP。. NET MVC为您解析,您有两个选项:

  1. 通过动作
  2. 中的HttpContext.Request访问它
  3. 写入将请求体映射到jsonReq参数的自定义模型绑定器

请求没有名为jsonReq的值,因此不知道将json映射到该操作参数。

当你的JSONModel的属性名与传入请求的JSON命名值相匹配时,这个对象就会被填充。