【问题标题】:Asp.Net Mvc JQuery ajax input parameters are nullAsp.Net Mvc JQuery ajax 输入参数为空
【发布时间】:2015-05-08 12:55:36
【问题描述】:

我正在尝试使用 jQuery Ajax 发布一些数据,但我的 Ajax 方法中的参数为空。

这是发送数据的简单测试:

 var dataPost = { titel: 'titel', message: 'msg', tagIds: 'hello' };
        jQuery.ajax({
            type: "POST",
            url: "Create",
            contentType: 'application/json; charset=utf-8',
            data: $.toJSON(dataPost),
            dataType: "json",
            success: function(result) {
                alert("Data Returned: ");
            }
        });

我的 Ajax 方法如下所示:

[HttpPost]
public ActionResult Create(string title, string message, string tagIds)
{... }

我发送的数据存在一些基本问题,但我不知道是什么问题。 title、message 和 tagIds 一直都是 null,所以编码有问题,我只是不知道是什么。

最好参数 tagIds 应该是一个数组或 guid 列表。

注意:jQuery.toJSON 是 plugin

【问题讨论】:

    标签: asp.net-mvc jquery


    【解决方案1】:

    Create 控制器操作不希望参数被 JSON 序列化,因此您不必这样做。尝试直接传递它们:

    var dataPost = { titel: 'titel', message: 'msg', tagIds: 'hello' };
    jQuery.ajax({
        type: "POST",
        url: "Create",
        data: dataPost,
        dataType: "json",
        success: function(result) {
            alert("Data Returned: ");
        }
    });
    

    【讨论】:

    • 感谢显然内容类型带来的麻烦多于好处。
    • 同样的问题,我不明白为什么模型绑定不适用于简单的字符串...我将 contentType 设置为 json。删除后,效果很好。
    【解决方案2】:

    我们不需要contentType: 'application/json; charset=utf-8',$.toJSON

    这是让我开心的代码!

     $(function () {
            $("#btnSumbit").click(function () {
                $('#results').hide();
                $('#loadingmessage').show();
                var a = $("#query").val();
    
                $.ajax({
                    type: "POST",
                    url: "/Search/Index",
                    data: ({ query: a }),
                    datatype: "json",
                    success: function (data) {
                        $('#results').empty();
                        for (var i = 0; i < data.length; i++) {
                            var div = "<div>" + data[i].Name + "</div>";
                            $("#results").append(div);
    
                        }
                        $('#loadingmessage').hide();
                        $('#results').show();
                    },
                    failure: function (errMsg) {
                        $('#loadingmessage').hide();
                        alert(errMsg);
                    }
                });
            });
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-20
      • 2020-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-01
      相关资源
      最近更新 更多