asp.net - 如何使用asp.net webapi获取Json Post值

标签 asp.net post request asp.net-web-api

我正在请求执行一个 asp.net webapi Post 方法,但我无法获得请求变量。

请求

jQuery.ajax({ url: sURL, type: 'POST', data: {var1:"mytext"}, async: false, dataType: 'json', contentType: 'application/x-www-form-urlencoded; charset=UTF-8' })
    .done(function (data) {
        ...
    });

WEB API Fnx
    [AcceptVerbs("POST")]
    [ActionName("myActionName")]
    public void DoSomeStuff([FromBody]dynamic value)
    {
        //first way
        var x = value.var1;

        //Second way
        var y = Request("var1");

    }

我无法以两种方式获取 var1 内容...(除非我为此创建了一个类)

我该怎么做?

最佳答案

第一种方式:

    public void Post([FromBody]dynamic value)
    {
        var x = value.var1.Value; // JToken
    }

请注意 value.Property实际上返回一个 JToken例如,要获得它的值(value),您需要调用 value.Property.Value .

第二种方式:
    public async Task Post()
    {        
        dynamic obj = await Request.Content.ReadAsAsync<JObject>();
        var y = obj.var1;
    }

上述两项工作都使用 Fiddler。如果第一个选项不适合您,请尝试将内容类型设置为 application/json确保JsonMediaTypeFormatter用于反序列化内容。

关于asp.net - 如何使用asp.net webapi获取Json Post值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13120971/

相关文章:

php - 隐藏post参数,phpcurl

javascript - 如何使用 Request 和 NodeJS 到达重定向页面

asp.net - IIS 301 重定向 - 将原始 URL 通知最终站点的任何方式

asp.net - 使用授权标签时,MVC2 应用程序中的 AJAX Get/Post 嵌入登录页面

c# - 发布 DropDownList.Items.Addrange 和选择值时出现问题

C# Elastic Beanstalk webapp,找不到与具有 webhttp 绑定(bind)的端点的方案 https 相匹配的基地址。

python - 如何在python 3中发送post文件(图像)

asp.net - 在 ASP.NET 中上传文件时运行病毒扫描

javascript - 在 Node.js 中使用 post 请求获取选中的单选按钮的值

node.js - PUT 的 Node JS 请求 promise