我正在测试日历应用程序上的推送通知。当我在日历应用程序上创建一个事件时,我的网站会获得一个带有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();
}
答案 0 :(得分:4)
ASP.NET MVC模型绑定按以下方式工作 - 它解析请求,尝试查找其参数与Action参数之间对应的名称到名称,如果找到则实例化后者。您没有发送名称为jsonReq
的参数,因此您无法在操作方法中收到任何内容。
如果你真的想使用plan json字符串而不让ASP.NET MVC为你解析它,你有两个选择:
HttpContext.Request
访问它
jsonReq
参数答案 1 :(得分:1)
请求没有名为jsonReq的值,因此不知道将json映射到该action参数。
在哪里,您的JSONModel将具有与请求中的JSON命名值匹配的属性名称,因此我们填充了对象。