【发布时间】:2020-02-29 01:14:45
【问题描述】:
我试图在剃刀页面中的 OnPost 之后显示通知。因为要刷新页面来更新页面数据,所以不能用return Page(),必须用return RedirectToPage()
因此,[Tempdata] 概念不起作用并且消息为空,因为它再次通过 OnGet。
有什么想法可以解决这个问题吗?这是我的代码:
public async Task<IActionResult> OnPostAddPerson()
{
try
{
if (ModelState.IsValid)
{
await _repo.AddPerson(person);
Message = "Success";
}
else
{
Message = "An Error occured";
}
}
catch(Exception ex)
{
throw ex;
}
return RedirectToPage("/Index");
}
【问题讨论】:
-
只用你的模型返回 View("Index")
-
顺便说一句...
throw ex;不会为您做任何事情,实际上会从异常中删除有用的信息。这是一个值得打破的习惯。如果你的catch块没有做任何事情,那么它应该被完全删除。如果您保留它只是为了暂停调试器(尽管还有其他方法可以针对异常执行此操作),那么至少养成使用throw;重新抛出原始异常而不是生成的习惯一个新的堆栈跟踪。 -
@David 感谢您的回答,它只是一个占位符!我通常在文本文件中记录我的异常
-
@godot 猜测这是可能的,但只需要再次调用数据库中的所有获取