我有两个名为AddContact的动作,一个用[HttpGet]修饰,另一个用[HttpPost]修饰。我做了一个Ajax帖子并添加了联系人,但表单中仍然包含数据。如何在发布后使表格清晰?
我对MVC相当新,到目前为止,我总是在帖子后进行重定向,因为我读到你应该总是那样做。这是我第一次真正想要留在同一页面上。我的意思是,我可以将AddContact方法重命名为GET和POST不同的东西,并在post后重定向到get动作,但这对我来说很笨拙。有没有一种方法可以实现我想要做的事情?
答案 0 :(得分:0)
我会使用javascript函数在AJAX成功时重置表单。因此,考虑到这一点,您可以构建一个包含所有表单输入的数组
var inputarray = ["#one","#two","#three"];
然后只需在Ajax Success上调用一个函数,这就是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 = "";
}
确保您的控制器返回JsonResult为0表示成功或1表示错误,所以像这样
return Json(0, JsonRequestBehavior.AllowGet);
这是一个简单的jsfiddle示例(这没有ajax调用,但你得到我的漂移) http://jsfiddle.net/ed1hgk4g/