RedirectToAction没有按预期刷新页面
本文关键字:刷新 RedirectToAction | 更新日期: 2023-09-27 18:18:01
我在这里做错了我的MVC代码吗?Index视图包含一个提交给自己的表单,我想让控制器处理提交的表单,然后返回给视图。
实际发生的是表单被正确处理,但是返回的View好像什么都没有发生(例如,已经删除的id仍然显示)。如果我手动刷新页面,它会再次正确显示。我认为这与浏览器缓存无关,因为从不同的控制器重定向到相同的视图工作得很好。我该怎么修理它?
public ViewResult Index()
{
return View(GetComments());
}
[HttpPost]
public ActionResult Index(int[] AllIds)
{
if (AllIds != null)
{
foreach (int id in AllIds)
{
// do stuff
}
}
return RedirectToAction("Index");
}
编辑:提交表单时,第一个方法上的断点没有被击中,并试图"Step Into (F11)",return RedirectToAction("Index");
行只是直接移动到最终的}
上。
为Firefox安装Fiddler或Firebug并观察流量,看看它是否真的返回一个新的响应或来自浏览器的HTTP 304(缓存页面)。
你试过吗?我想知道,这取决于你如何持久化数据,如果它没有被保存,直到服务器返回响应…?
public ViewResult Index()
{ // breakpoint
var comments = GetComments(); // debug and inspect the value of this variable
return View(comments);
}
[HttpPost]
public ActionResult Index(int[] AllIds)
{
if (AllIds != null)
{
foreach (int id in AllIds)
{
// do stuff
}
}
return RedirectToAction("Index"); // breakpoint
}
我知道有些人在MVC中使用IUnitOfWork,只在请求结束时调用ORM上的SaveChanges/Commit。是否有可能,//做的东西从集合中删除项目,但不坚持到数据库,直到GET索引()返回后?
不是返回RedirectToAction("Index")
,你试过RedirectToAction(Index())
了吗?
尝试输入控制器名称。这帮助了我。例如:
return RedirectToAction("Index","Home");