我在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())},
这也不起作用。任何帮助都感激不尽。谢谢。
答案 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
}
});