为什么在数据库处理步骤完成之前我的重定向行动发生了?

时间:2015-08-18 23:53:22

标签: asp.net-mvc asp.net-mvc-5

我在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方法处理的事实相关

0 个答案:

没有答案