У меня есть простая веб-страница с раскрывающимся списком и частичным представлением.Я пытаюсь обновить частичное представление на основе результата вызова ajax, инициированного при изменении выпадающего выбранного значения.Я могу достичь действия контроллера, но параметр, который я передаю, всегда равен нулю.
Я пробовал следующие способы передачи данных.
var formData = new FormData();
formData.append('Id', managerId)
data:formData,
data: { 'Id': managerId } ,
data: JSON.stringify({ 'Id': managerId } ),
Вот действие контроллера.Я использую маршрутизацию MVC по умолчанию, другие маршруты не определены.
[HttpPost]
public ActionResult GetEmployees(string Id)
{
if (string.IsNullOrEmpty(Id))
{
Id = "2";
}
long numberId = Convert.ToInt64(Id);
List<SEmployee> lstEmp = db.SEmployees.Where(x => x.LkupParentManagerId == numberId).ToList();
return PartialView("_EmployeeTable", lstEmp);
}
Вот полный вызов Ajax:
$(document).ready(function () {
$("#ddManager").change(function () {
var managerId = this.value;
var formData = new FormData();
var form = $('form').serialize();
formData.append('Id', managerId);
//alert(managerId);
$.ajax({
url: "/SEmployees/GetEmployees",
type: 'POST',
data:formData,
//data: { 'Id': managerId } ,
//data: JSON.stringify({ 'Id': managerId } ),
processData: false,
success: function (result) {
//alert(result);
$("#tblEmployees").html(result);
},
error: function () {
alert('Failed to retrieve the Employees.');
}
});
});
});
Вот раскрывающийся список в представлении.
<div class="form-group">
@Html.LabelFor(model => model.SelectedId, htmlAttributes: new { @class = "control-label required" })
<div>
@Html.DropDownListFor(model => model.SelectedId, Model.LstSelectManagers, new { @id = "ddManager", @class = "form-control", @margin = "auto" })
@Html.ValidationMessageFor(model => model.SelectedId, "", new { @class = "text-danger", AutoPostBack = "True" })
</div>
</div>
Я пробовал три вышеупомянутых способа передачи данных из представления в контроллер.Вызов поступает на контроллер, но не данные.Пожалуйста, помогите мне устранить неполадки вызова AJAX.Заранее спасибо.