2012-12-14 33 views
1

我有一個編輯細節表單,它在jQuery UI對話框中顯示爲部分對象。我想提交修改回數據庫,但我遇到麻煩使用MVC3編輯表單上使用的標準提交按鈕..我想提交更改,但留在對話框中。將模型對象從UI對話框的部分對象傳回控制器

我已經把頁面上的按鈕調用了一點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> 
+0

請張貼完整代碼視圖。 –

回答

0

解決:

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

data: formData, 
type: "POST", 

然後在我控制器期望和對象:

public string QuickEditSave(newUser newuser) 
+0

如果這是解決方案,則應將其標記爲如此。 http://stackoverflow.com/help/accepted-answer – Killnine

1

您必須將表單輸入元素序列化爲JSON對象,然後通過發送它。

使用這個插件連載找你表單數據(這部分是由SO question):

$.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); 
     } 
    }); 
相關問題