2012-01-24 47 views
0

我目前正在嘗試做的Ajax.BeginForm助手做的相同的功能,而不是通過一個輸入提交標記做約30秒的設置間隔。ASP.Net MVC3 Ajax間隔後

@using (Ajax.BeginForm(new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "shipmentTable", OnComplete = "OnSuccess"})) 

完美工作,但似乎無法將其轉化爲工作的jquery.ajax調用。帖子控制器有兩個參數,minDate和maxDate。原始URL類似Home/Shippments?minDate = arg1 & maxDate = arg2。我試過了可能會沿着以下幾種方式的變化:

setInterval(function() { 
     $.ajax({ 
      type: 'POST', 
      url: '/Home/Shipping', 
      dataType: 'html', 
      success: OnSuccess 
     }); 
    }, 30000); 

沒有運氣。只是想看看有沒有人能幫助我。乾杯。

更新: 這似乎工作很好,只需要將控制器中的參數更改爲僅接受FormCollection。

setInterval(function() { 
    $.ajax({ 
     type: 'POST', 
     data: $('form').serialize(), 
     url: '/Home/Shipping', 
     dataType: 'html', 
     success: OnSuccess 
    }); 
}, 30000); 

我看起來像所有的答案工作得很好。

回答

2

您正在向成功函數傳遞一個字符串。傳遞函數本身,這將是這樣的:

function OnSuccess(ajaxReturnedData) 
{ 
alert("success"); 
} 

setInterval(function() { 
     $.ajax({ 
      type: 'POST', 
      url: '/Home/Shipping', 
      data : { param1 : "value1", param2: "value2" }, 
      dataType: 'html', 
      success: OnSuccess 
     }); 
    }, 30000); 

或者結合起來:

setInterval(function() { 
     $.ajax({ 
      type: 'POST', 
      url: '/Home/Shipping', 
      data : { param1 : "value1", param2: "value2" }, 
      dataType: 'html', 
      success: function(ajaxReturnedData){ 
       alert("success"); 
      } 
     }); 
    }, 30000); 

如果你有螢火蟲,你可以看到Ajax調用的狀態,這是什麼回報?任何錯誤代碼或成功?

+0

這似乎工作,但我沒有返回表單數據。 – jasonbryan

+0

在'data'部分使用下面一行:'data:$(「form」)。serialize(),' – Niels

+0

對於Joe Tuskan回答的類似問題,我需要將表單數據放在一個普通的

標籤或使用Html.Begin()也許? – jasonbryan

1

嘗試:

setInterval(function() { 
     $.post('/Home/Shipping',$("form").serialize(), function(data){ 
    //success 
}), 30000); 
2

你需要像serialize()

setInterval(function() { 
    $.ajax({ 
     type: 'POST', 
     data: $('#formId').serialize(), 
     url: '/Home/Shipping', 
     dataType: 'html', 
     success: OnSuccess 
    }); 
}, 30000); 

添加的minDatemaxDate值。

+0

將不得不創建我自己的窗體標籤?我是否使用Html.BeginForm()? – jasonbryan