2015-06-08 69 views
0

我有兩個名爲AddContact的動作,一個用[HttpGet]裝飾,另一個用[HttpPost]裝飾。我做了一個Ajax帖子,並添加了聯繫人,但表單中仍然有數據。如何在發佈後使​​表格清晰?MVC:在Ajax後刷新表格

我對MVC還是比較新的,到目前爲止,我總是在一篇文章後做了重定向,因爲我讀過你應該總是這樣做。這是我第一次真正想要保持在同一頁面上。我的意思是,我可以將AddContact方法重命名爲GET和POST的不同方法,並在post之後重定向到get action,但這對我來說有點笨拙。有沒有一種很好的方法來實現我想要做的事情?

+0

AJAX的全部目的是爲了避免重定向時,它不是必需的..只要不重定向,沒有標準說你必須這樣做。好處理BTW:P –

+1

謝謝大聲笑。我的中間名實際上是謝爾登,我的姓氏是庫珀,我甚至在我意識到BBT之前就創建了這個賬戶。 –

+0

重定向或不重定向,發佈後,表單區域被刷新,但表單數據未被清除。我如何獲取表單數據以清除它,這是一種新形式? –

回答

0

我會使用JavaScript函數重置AJAX成功的窗體。因此,考慮到這一點,你可以建立與您的所有形式的陣列輸入這樣的事情

var inputarray = ["#one","#two","#three"]; 

然後,只需調用Ajax的成功的功能,所以這是調用AJAX的例子

$.ajax({ 
     url: ajaxUrl, 
     data: form, 
     type: "POST", 
     success: function(ajaxresult) { 
      if (ajaxresult === 0) { 
       formClear(); 
      } 
     } 
    }); 

然後有一個名爲formClear的JavaScript函數,並有這樣的事情

for (var i=0; i < inputarray.length; i++) { 
    document.getElementById(inputarray[i]).value = ""; 
} 

確保你的控制器返回0成功或1 JsonResult錯誤所以像THI小號

return Json(0, JsonRequestBehavior.AllowGet); 

這裏有一個簡單的jsfiddle例子(這個沒有Ajax調用,但你讓我的漂移) http://jsfiddle.net/ed1hgk4g/

+0

顯然我會使用外部JS文件而不是內嵌腳本標記 –