MVC单字符串JSON帖子在控制器中始终为空

时间:2019-03-24 13:07:08

标签: c# jquery ajax asp.net-mvc asp.net-ajax

我在MVC 5应用程序中遇到一个奇怪的问题,我想使用Ajax发布将Drop Down Selected值传递给控制器​​。

邮政编码看起来像这样:

$(function () {
    //Change the Value stream list each time the BU is selected
    $('#Lob').change(function () {   

        alert(JSON.stringify($('#Lob option:selected').text()));

        $.ajax({
            url: '@Url.Content("~/Dashboard/GetValueStreams/")',
            dataType: 'json',
            type: 'POST',
            data: JSON.stringify($('#Lob option:selected').text()),
            contentType: 'application/json',
            success: function (VSList) {
                // do stuff
                });
            }
        });
    });
});

ALERT可以正常工作并正确显示所选值。但是,在控制器中,字符串显示为空。

 [HttpPost]
    public ActionResult GetValueStreams(string BUName)
    {   
       // Here the BUName parameter is coming as null.
    }

我尝试将JSON POST数据更改为以下内容:

data: {"BUName": JSON.stringify($('#Lob option:selected').text())},

这也不起作用。任何帮助都感激不尽。谢谢。

1 个答案:

答案 0 :(得分:2)

将数据更改为data: JSON.stringify({BUName : $('#Lob option:selected').text()})

我进行了测试,并且有效。

$.ajax({
        url: '@Url.Content("~/Dashboard/GetValueStreams/")',
        dataType: 'json',
        type: 'POST',
        data: JSON.stringify({BUName : $('#Lob option:selected').text()}),
        contentType: 'application/json',
        success: function (VSList) {
            // do stuff
        }
        });