2015-06-08 71 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文件而不是内嵌脚本标记 –