当在Razor页面中进行重定向操作时,数据库不保存更改的原因可能是因为没有调用SaveChanges()方法来提交更改。以下是一个解决方法示例:
private readonly ApplicationDbContext _context;
public IndexModel(ApplicationDbContext context)
{
_context = context;
}
public IActionResult OnPost()
{
// 处理表单提交逻辑
// ...
// 保存更改到数据库
_context.SaveChanges();
// 执行重定向操作
return RedirectToPage("Index");
}
这样,在进行重定向之前会将更改保存到数据库中,以确保更改不会丢失。
请注意,以上示例假设你使用的是Entity Framework Core作为ORM(对象关系映射)框架,并且数据库上下文类为ApplicationDbContext。如果你使用的是不同的ORM框架或数据库上下文类,请对代码进行相应的修改。