1

次の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("");
    }
4

0 に答える 0