1

jquery uiダイアログに部分的に表示される編集詳細フォームがあります。修正をデータベースにコミットしたいのですが、MVC3 編集フォームで使用される標準の送信ボタンを使用して問題が発生しました。変更をコミットしたいのですが、ダイアログに残ります。

少しjqueryを呼び出しているページにボタンを配置しました(以下)。私が知る必要があるのは、モデル (Models.User と呼ばれる) をシリアル化し、それをコントローラーに戻す方法です。

ご覧のとおり、jquery の大部分が配置されています。必要なのは、シリアル化してデータを送信することだけです。私はJsonを使用する必要があると推測していますが、それをどのように持ち込むかについては100%ではありません.

どんな助けでも感謝..

<script type="text/javascript">
    $(document).ready(function(e) {
        $(function() {
            $("#quickButton1").live("click", function (e) {
                e.preventDefault();
                $.ajax({
                    url: "/Users/QuickEditSave/",
                    data: ({}),                  
                    success: function (data) {
                        uiDialog.close();
                    },
                    error: function(xhr, ajaxOptions, thrownError) {
                        alert(xhr.responseText);
                    }
                });
            });
        });
    });    
</script>
4

2 に答える 2

1

フォームの入力要素を JSON オブジェクトにシリアライズしてから、 経由で送信する必要があります$.Ajax

このプラグインを使用して、フォーム データをシリアル化します (この部分は SO の質問からのものです)。

$.fn.serializeObject = function()
{
    var o = {};
    var a = this.serializeArray();
    $.each(a, function() {
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};

$(function() {
    $('form').submit(function() {
        $('#result').text(JSON.stringify($('form').serializeObject()));
        return false;
    });
});​

そしてそれを送信します:

   $.ajax({
         url: "/Users/QuickEditSave/",
         data: JSON.stringify($('form').serializeObject()),                  
         success: function (data) {
          uiDialog.close();
         },
         error: function(xhr, ajaxOptions, thrownError) {
            alert(xhr.responseText);
         }
    });
于 2012-12-14T16:09:55.903 に答える
0

解決済み:

var formData = $("form").serialize();

data: formData,
type: "POST",

次に、コントローラーで期待してオブジェクトを作成します。

public string QuickEditSave(newUser newuser)
于 2012-12-14T15:52:47.110 に答える