[Mvc,Ajax]serialize two forms 以及「RequestVerificationToken」設定

當頁面設定的越來越複雜的時候,我們可以在一次的送出中,需要使用到多張表單的內容,這時候我們可以使用JQuery的「serialize()」來取得多張表單的內容。

實作:

1.先說明一下我們的POST Action所想取得的參數內容:

(1)Action:

我們有一個POST Action「TestPost」使用的模型是「TestMixModel」


(2)模型架構:
「TestMixModel」的屬性有兩個字串「Key」「Test」,及一個List<TestModel>「datas」


2.View 說明:

我們有一個表單「A」內容binding了List<TestModel>「datas」所需的資料;一個表單「B」內容包含了有兩個字串「Key」「Test」所需要的資料內容。

3.JacaScript說明:

因為我們「POST Action」有用[ValidateAntiForgeryToken]防偽,所以需要加(48行)的"RequestVerificationToken",至於兩個表單的合併我們可以用 $('#A,#B').serialize()來達成(47行)

code

 function PostFunc() {
            $.ajax({
                type: "POST",
                url: $('#TestPostUrl').val(),
                data: $('#A,#B').serialize(),
                headers: {
                    'RequestVerificationToken': $("input[name='__RequestVerificationToken']").val()
                },
                success: function (response) {

                },
                error: function (e) {

                },
                complete: function () {

                }
            });
        }

4.結果:




留言

這個網誌中的熱門文章

[Visual Studio]位於網際網路或是限制區域上 或是檔案上標有 web 字樣 所以無法處理該檔案。若希望處理這些檔案 請移除 web 字樣。

[IIS] IIS執行時,發生拒絕存取路徑 問題

[SourceTree]修改使用者帳號密碼