Я пытаюсь отправить только 2 идентификатора на контроллер с помощью Ajax, как показано ниже, но модель вообще не указана.
Моя модель просмотра настолько проста, как показано ниже:
public class CityAreaBindingModel
{
public int CityID { get; set; }
public int AreaID { get; set; }
}
Представление: два раскрывающихся списка, которые помогают выбрать город и район
<select class="form-control" id="CityID" name="CityID">
@{
foreach (var city in ViewData["Cities"] as List<SamsungTools.Models.City>)
{
<option value="@city.ID" @(city.ID == 1 ? "selected" : "")>@city.Title</option>
}
}
</select>
<select class="form-control" id="AreaID" name="AreaID">
@{
foreach (var area in ViewData["Areas"] as List<SamsungTools.Models.Area>)
{
<option value="@area.ID" @(area.ID == 1 ? "selected" : "")>@area.Title</option>
}
}
</select>
Ajax: использование formData с двумя выбранными идентификаторами из представления
var cId = $('#CityID').val();
var aId = $('#AreaID').val();
var data = new FormData();
data.append("CityID", cId);
data.append("AreaID", aId);
$.ajax({
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
type: 'POST',
url: '/api/GetData/GetSaleCentersByLocation',
data: data,
processData: false,
И в контроллере просто передается модель представленияиз ajax:
[HttpPost]
public JsonResult GetSaleCentersByLocation(CityAreaBindingModel model)
{
GeneralStore gs = new GeneralStore();
var saleCentersByCity = gs.GetSaleCentersByCity(model.CityID);
var result = new JsonResult();
result.Data = saleCentersByCity;
result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
return result;
}
Проблема в том, что модель вообще отсутствует в контроллере.Я изменил поля заголовка в Ajax, но любым другим способом я получу ошибку 415, Недопустимый вызов, ошибка сервера 500, ... С указанными выше параметрами Ajax данные будут отправляться на контроллер, но модель равна нулю.
Любойрешение?