我正在学习ASP。. NET MVC和我在Ajax重定向面临的问题。在普通的post或get调用中,我们可以将用户返回到特定的页面,例如:
return RedirectToAction("AllStudents");
但是使用json,它是不同的,或者可能是我不太了解它。
我已经张贴了我的代码在正常,也转换为Ajax。
What I have try
控制器代码:
[HttpGet]
public ActionResult Delete(int id)
{
stude.DeleteStudent(id);
return RedirectToAction("AllStudents");
}
和我已经使用Ajax做的工作成功,但它不是重定向用户到另一个页面,就像在上面的代码,它重定向用户到另一个页面。
我的Ajax控制器代码:[HttpPost]
public JsonResult Delete(int id)
{
stude.DeleteStudent(id);
return Json("true",JsonRequestBehavior.AllowGet);
}
My Js code:
// Delete record
$("#del").click(function (e) {
e.preventDefault();
var id = $("#stid").val();
//alert(id);
$.ajax({
method: "POST",
url: "Delete/" + id,
contentType: "application/json; charset=utf-8",
async: true,
data: JSON.stringify(id),
success: function (data) {
console.log(data);
},
error: function (err) {
console.log('Failed to get data' + err);
}
});
});
操作被执行,数据被删除,但浏览器停止如下:
更新我的目标:我希望删除数据时不像通常那样刷新页面。另外,请分享一个链接,张贴,一些显示页面刷新使用ajax。比如我想每隔1分钟刷新一个页面,但不重新加载它。
更新:数据正在删除,但是Red高亮显示(页面)不刷新,我必须手动刷新,这是我不想要的。我想在不重新加载的情况下悄悄地刷新它。
如果您只刷新网格,那么创建一个超时方法如下:
setTimeout(function() {get grid data by ajax call}, 10000);
如果你想重载整个页面,那么
- 创建一个局部视图
- 创建一个动作方法并返回PartialView()。
- 创建ajax调用并获取响应以添加div,如div .html(data);
如果您每1分钟刷新一次页面,那么创建一个超时函数并创建一个简单的ajax
setTimeout(function() { ajax call}, 10000);