У меня есть следующее:
public class CarModelList
{
public CarModel CarsSea { get; set; }
public CarModel CarsAir { get; set; }
public CarModel CarsSoil { get; set; }
}
CarModel выглядит следующим образом:
public class CarModel
{
public long Id { get; set; }
public string Color { get; set; }
public List<SelectItem> ColorList { get; set; }
public string Seats { get; set; }
public string Model { get; set; }
public string Year { get; set; }
}
После установки флажка в CarModelList будет добавлен новый CarModel, CarsAir. Это делается с помощью вызова ajax:
var obj = $('#form0').serialize();
var jsonObj = @Html.Raw(Json.Encode(Model))
console.log(jsonObj);
$.ajax({
url: "@Url.Action("AddAirModel", "Quote")",
//contentType: "application/json",
data: jsonObj,
dataType: "json",
type: "POST",
success: function (data, textStatus, jqXHR) {
//data.appendTo("#AirQuote");
console.log(data.language);
$("#AirQuote").show();
},
error: function (jqXHR, statusText, errorText) {
alert('Error: ' + errorText)
}
Мое действие в контроллере:
[HttpPost]
public ActionResult AddAirModel(CarModelList listCars)
{
listCars.CarsAir = new CarModel();
listCars.CarsAir.TypeOfService = "3";
ConfigureViewModel(listCars.CarsAir);
return Json(new { data = listCars }, JsonRequestBehavior.AllowGet);
}
Это корректное добавление инициализирует новый CarsAir в CarModelList и возвращает CarModelList listCars в данных.
Однако сейчас я хочу привязать CarsAir к представлению. У меня есть следующее:
if (Model.QuoteModelAir != null)
{
<div id="AirQuote">
<div>
@Html.LabelFor(model => model.QuoteModelAir.Seats)
@Html.EditorFor(model => model.QuoteModelAir.Seats)
</div>
....so on for all the properties of CarsAir.
</div>
}
Итак, как мне связать data.CarsAir из результатов ajax с представлением?