javascript - Post 方法从 ajax 调用 ASP.net 4.5 接收到 null 值

标签 javascript ajax asp.net-mvc

在我的

  public class ValuesController : ApiController

我有一个 Post 方法:

 public void Post([FromBody]string value)
        {
            string a = "asdsad";
        }

我创建了一个带有按钮的小 HTML,当我按下它时,我使用 $.ajax 调用 Post 方法:

function myfunc() 
             {


    $.ajax({
                contentType: 'application/json',
                data: '{"value":"on"}',
                dataType: 'json',
                success: function(data){
                    app.log("device control succeeded");
                },
                error: function(){
                    app.log("Device control failed");
                },
                processData: false,
                type: 'POST',
                url: 'http://localhost:49558/api/values',
            });
        }

问题是 Post 方法接收到字符串值 - null

如果这种方法有问题:

使用ajax通过post方法发送数据的最佳方式是什么?

最佳答案

尝试像这样传递值:

$.ajax({
    type: 'POST',
    url: '/api/values',
    data: '=on',
    success: function (data) {

    },
});

请注意数据部分中实际值之前的 =

如果您想使用 JSON,那么您应该从 View 模型开始:

public class MyViewModel
{
    public string Value { get; set; }
}

您的 Controller 操作将作为参数:

public void Post(MyViewModel model)
{
    // use model.Value here
}

你会这样调用:

$.ajax({
    type: 'POST',
    url: '/api/values',
    contentType: 'application/json',
    data: JSON.stringify({ value: 'on' }),
    success: function (data) {

    },
});

关于javascript - Post 方法从 ajax 调用 ASP.net 4.5 接收到 null 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27892441/

相关文章:

c# - MVC 5 DateTime POST 到 Controller 显示为 1/1/0001

c# - Web API 2 - 实现补丁

javascript - Svg 打开时不会显示

javascript - 循环使用 Ajax 的函数。仅在 IE 中失败。其他所有浏览器都可以正常工作

javascript - 在 AJAX 页面上刷新 google adsense

asp.net-mvc - 使ajax get在auth超时时重定向主页以登录

c# - ReSharper 间歇性地显示有效 Razor 代码的红色错误

javascript - 创建新模型时将模型 url 与集合 url 关联

javascript - 如何在不绑定(bind) this 的情况下绑定(bind)函数参数?

javascript - 如何使用 ScriptEngine 从 Java 调用 ajax 来调用 javascript 函数?