相关疑难解决方法(0)

ASP.NET Core MVC:如何将原始JSON绑定到没有类型的字符串?

类似这种关于ASP.NET之前老版本的问题,我希望得到一个HTTP POST请求体被绑定到一个字符串.value当ASP.NET调用我的控制器方法时,似乎该方法绑定,但是为null:

namespace Demo.Controllers
{

    [Route("[controller]")]
    public class WebApiDemoController : Controller
    {
    ...

    // POST api/values
    [HttpPost]
    public System.Net.Http.HttpResponseMessage Post([FromBody]string value)
    {
       // expected: value = json string, actual: json = null.
    }
Run Code Online (Sandbox Code Playgroud)

我还需要从溪流中抓住身体吗?或者这应该工作吗?在测试上述方法时,我使用了以下http标头:

Accept: Application/json
Content-Type: Application/json;charset=UTF-8
Run Code Online (Sandbox Code Playgroud)

我在身体中传递以下内容: { "a": 1 }

我不想绑定到名为a的字符串变量.我想绑定任何我得到的JSON,然后我想在我的方法中使用JSON内容,任何任意内容.

如果我理解了文档,该[FromBody]属性应该已经完成​​了我想要的,但我猜测ASP.NET核心MVC绑定机制不会将json绑定到"字符串值",但也许我可以做其他事情让我获得同等程度的灵活性.

类似的问题在这里给了我一个想法,也许我应该写[FromBody] dynamic data而不是使用[FromBody] string value.

更新:在执行此操作之前应该考虑这种技巧,因为如果您希望.net核心框架为您处理JSON和XML编码,那么您刚刚杀死了该功能.某些类型的REST服务器可以并且通常具有支持XML和JSON内容类型的要求,至少我遇到过具有标准文档的内容类型.

c# asp.net-mvc asp.net-web-api asp.net-core-mvc

46
推荐指数
5
解决办法
4万
查看次数

ASP.NET MVC 4 RC Web API参数绑定问题

我在ASP.NET MVC 4 RC Web API中得到了我认为是一个奇怪的绑定问题.我有一个方法来接受来自客户端的帖子请求.问题是,当调用post方法时,没有任何参数是绑定的,我到达了抛出线上的断点并且名称,email都是null.如果我在JavaScript中将请求的类型更改为GET,则使用参数绑定调用下面的Get函数.

为什么参数无法为Post方法绑定,我该如何解决这个问题?

send: function(evt) {
    evt.preventDefault();
    $.ajax( {
        url: '/api/person',
        data: this.model.toJSON(),
        type: "POST",
        dataType: "json",
        success: function(data) {
            console.log("Success");
        },
        error: function(data) {
            console.log("Error");
        }
    });
     }
Run Code Online (Sandbox Code Playgroud)

以下是控制器操作:

public void Get(string name, string email) {
    throw new NotImplementedException();
}

public void Post(string name, string email) {
    throw new NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud)

笔记:

  • 我正在使用ASP.NET MVC 4 RC Web API的所有默认值(因此解串器应该是Json.NET)
  • JS调试器上的Chrome网络选项卡可以正确显示表单数据中的参数.

.net c# asp.net-mvc-4 asp.net-web-api

5
推荐指数
1
解决办法
9454
查看次数