2010-06-01 53 views
0
function onTestComplete(content) { 
     var url = '<%= Url.Action("JsonTest","Organization") %>'; 
     $.post(url, null, function(data) { 
     alert(data["name"]); 
     alert(data["ee"]); 

     }); 
     } 


    <% using (Ajax.BeginForm("JsonTest", new AjaxOptions() { HttpMethod = "POST", 
OnComplete = "onTestComplete" })) 

{ %> 

<%= Html.TextBox("name") %><br /> 
<input type="submit" /> 

控制器:`asp.net mvc的JSON 2倍張貼到控制器

[HttpPost] 
    public ActionResult JsonTest() 
    { 
     var data = new { name = "TestName",ee="aaa" }; 

     return Json(data); 
    }` 

由於某種原因,當我點擊該按鈕(我的斷點在控制器jsontest法) jsontest被調用兩次(這是真正的問題)。我想像往常一樣調用它,使用Ajax.BeginForm(「」,新的AjaxOptions {HttpMethod =「POST」,OnComplete =「onTestComplete」}))I我可以調用它一次,但它不會將值發佈到控制器。

回答

3

它被稱爲兩次,因爲你叫它兩次 - 一次通過Ajax.BeginForm和一次在onTestComplete

控制器沒有得到任何值,因爲它沒有任何參數。

+0

好吧我怎麼稱呼它一次沒有任何問題 – maztt 2010-06-01 13:59:56

+1

擺脫'onTestComplete'的第二個電話。 – SLaks 2010-06-01 14:09:04

+0

將null傳遞給post中的url會停止顯示警報? – maztt 2010-06-01 14:12:45