次のAjax呼び出しがあります。2つのパラメータがあります。1つはシリアル化された形式で、もう1つは文字列です。フォームを返すだけの場合、すべての値がコントローラーオブジェクトに存在します。ただし、シリアル化されたフォームと文字列の両方を渡すと、フォームオブジェクトがnullのときに文字列が入力されます...
なぜそうなのかわからない。どんな助けでも大歓迎です。
Jquery
function SubmitQuoteForm() {
var selectedServices = MapServiceForm();
var addressForm = $("#ShipmentForm").serialize();
$.ajax({
data: { addressModel: addressForm, serviceListing: selectedServices },
type: "POST",
url: "Home/PrepareRateRequest",
success: function (response) {
//omitted for brevity
}
});
function MapServiceForm() {
var selectedServices = $("#ShipmentForm input[type='checkbox']:checked").map(function () {
return this.id;
}).get().join('|');
return selectedServices;
}
}
コントローラ
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult PrepareRateRequest(Models.ShipmentModel addressModel, string serviceListing)
{
//omitted for brevity
return Json("");
}