我在Controller中有一个Action方法的代码,如下所示。在下面调用SaveToDoItem之后,不会显示新保存的“待办事项”。所以我逐步完成了代码并意识到重定向是在_agendaService.SaveToDoItem完成其工作以保存数据库中的项目之前异步发生的。 知道如何避免这种情况吗?
public ActionResult SaveToDoItem(int userId, string itemText, string dueDate, string userName)
{
_agendaService.SaveToDoItem(userId, itemText, dueDate);//This performs a DB process to save the item
return RedirectToAction("Index", "Agenda", userName); //Redirects to the Index action which retrieves all the existing items to display
}
public void SaveToDoItem(int userId, string itemText, string dueDate)
{
var toDoItem = new ToDoItem();
toDoItem.UserId = userId;
toDoItem.ItemText = itemText;
toDoItem.DueDate = DateTime.Parse(dueDate);
_toDoItemRepository.SaveToDoItem(toDoItem);
}
public void SaveToDoItem(ToDoItem toDoItem)
{
DbContext.Set<ToDoItem>().Add(toDoItem);
DbContext.Save();
}
我认为这也可能与按钮的类型=“提交”以及通过Ajax方法处理的事实相关