MVC:Ajax发布后刷新表单

时间:2015-06-08 18:05:17

标签: ajax asp.net-mvc

我有两个名为AddContact的动作,一个用[HttpGet]修饰,另一个用[HttpPost]修饰。我做了一个Ajax帖子并添加了联系人,但表单中仍然包含数据。如何在发布后使​​表格清晰?

我对MVC相当新,到目前为止,我总是在帖子后进行重定向,因为我读到你应该总是那样做。这是我第一次真正想要留在同一页面上。我的意思是,我可以将AddContact方法重命名为GET和POST不同的东西,并在post后重定向到get动作,但这对我来说很笨拙。有没有一种方法可以实现我想要做的事情?

1 个答案:

答案 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/