コントローラにリストオブジェクトがあります。このListオブジェクトを、FormDataからのAjax呼び出しでコントローラに渡されるデータでマップする必要があります。私がFormDataを使用している理由は、私はこの同じajax呼び出しでビューからいくつかのファイルを取得する必要があります。どうすればMVCのFormDataからC#複合リストオブジェクトをJqueryを介してマップできますか
私が見たときに以下
public class AdModel
{
public PartsAd PartsAdModel { get; set; }
public List<HttpPostedFileBase> AdImages { get; set; }
}
public class PartsAd
{
public List<Vehicle> VehicleList { get; set; }
}
public class Vehicle
{
public string VehicleBrand { get; set; }
}
以下の私のコードは、コントローラ
以下public ActionResult AjaxPostAd(AdModel adModel)
{
}
の私のアクションメソッドは、私のjQueryのコード
var applicableVehicleBrands = $('#multiSelectApplicableVehicleBrand option:selected');
var selectedBrand = 0;
$(applicableVehicleBrands).each(function() {
data.append("adModel[PartsAdModel.VehicleList[" + selectedBrand + "].VehicleBrand]", $(this).val())
selectedBrand = selectedBrand + 1;
});
$.ajax({
cache: false,
type: "post",
async: true,
url: "" + ajaxPostURL + "",
data: data,
contentType: false,
processData: false,
success: function (data) {});
しかし、私のコントローラであるされて見つけてください。 adModel.PartsAdModel.VehicleListの場合はnull
誰か助けてくれますか?仕事への結合モデルの場合
このクイックアンサーでは多くのShyjuさんに感謝します。フォームデータのadModel接頭辞が問題を引き起こしていました。そのうまくいって、私はそれを取り除いた。 – Lijo