2011-05-17 26 views
0

我試圖找出一種讓jquery對話框按鈕稱爲創建做一樣的asp.net提交按鈕的方法。jQuery的對話框按鈕做相同的asp.net mvc提交按鈕

<input type="submit" value="Create" /> 

我使用jQuery 1.3.2

我想出了下面讓對話框使用正確的控制器方法。

 var url = '<%= Url.Action("Create1", "Home") %>'; 
     $.post(url,data, 
          function(data) { 
           alert("Successful. Id for this client is " + data.ClientNo); 
           $("#CreateForm input").attr("value", ""); // Success 
          }, 
          "json"); // DataType 

然而,這種方法需要的模型參數

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Create1(ClientDetail client) 

看着http://api.jquery.com/jQuery.post/數據參數是地圖或字符串發送到服務器

我想知道是否有可能以一種模式轉換成可能使用.attr方法的地圖或字符串?

謝謝

回答

1

您唯一要做的就是確保您的發佈數據與屬性值ClientDetail具有相同的名稱。所以,如果ClientDetail有兩個屬性:NameAge,然後確保數據在發佈這個樣子的:

var data = { Name: 'ClientName', Age: 24 }; 

ASP.NET MVC的DefaultModelBinder將發佈的數據綁定到ClientDetail對象。

+0

謝謝你的工作 – porps89 2011-05-17 13:45:30

1

http://api.jquery.com/submit/

<form id="target" action="destination.html"> 
    <input type="text" value="Hello there" /> 
    <input type="submit" value="Go" /> 
</form> 
<div id="other"> 
    Trigger the handler 
</div> 

jQuery函數:

$('#other').click(function() { 
    $('#target').submit(); 
}); 
+0

我認爲他是在尋求一種Ajax的方式,而不是傳統的回帖之一。 但無論如何,感謝您的幫助。 – 2011-05-17 13:02:09

0

我可以建議你做的是:讓簽名接受所有的參數,你就服務器端將構建您的對象,並將其保存到您的數據存儲。

考慮下列之一:

[AcceptVerbs(HttpVerbs.Post)] 
     public ActionResult Create1(string clientName, string clientTitle, int clientAge) 
    {   
      var client = new Client() 
         { 
          name = clientName, 
          title = clientTitle, 
          age = clientAge, 
          .., 
          .., etc 
         } 
    } 

讓我知道,如果這對你的作品,並且不要忘記標記爲答案,如果它真的幫助你

感謝。

+1

如果名稱匹配屬性名稱,模型聯編程序將爲您執行此操作。 – Patricia 2011-05-17 13:14:38

+0

酷,我之前不知道這一點,感謝您和+ a的新信息。 – 2011-05-17 13:34:42