AJAX call -
这里countryId被传递为" AU"例如 -
$("#Countries").change(function () {
var countryId = this.value;
$.ajax({
url: '/Registers/GetStates',
type: "POST",
data: { 'data': countryId },
success: function (states) {
$("#States").html(""); // clear before appending new list
$.each(states, function (i, state) {
$("#States").append(
$('<option></option>').val(state.Id).html(state.Name));
});
}
});
});
调用GetStates方法&#39; countryId&#39;始终在控制器方法中作为null传递。不知道我在这里失踪了什么。 我也试过了JSON.Stringify({&#39; data&#39;:countryId})。任何人都可以帮助我吗?
Controller Action -
[HttpPost]
public SelectList GetStates(string countryId)
{
return Helper.GetStates(countryId);
}
答案 0 :(得分:6)
action方法中的参数应与ajax的'data'选项中的参数名称完全相同。
在您的情况下,它是'countryId'
[HttpPost]
public SelectList GetStates(string countryId)
{
return Helper.GetStates(countryId);
}
相应地更改您的ajax数据选项。
data: { countryId: countryId },
它会起作用。