首页 > 解决方案 > revel flash 消息不显示

问题描述

我创建了一个带有默认骨架的狂欢网络应用程序。

我创建了一个新的路线/动作/视图:

控制器动作:

func (c Ctrl1) Action3() revel.Result {
    variable1 := "test1"
    variable2 := "test2"
    c.Flash.Error("Message")
    return c.Render(variable1,variable2)
}

Action3.html:

{{set . "title" "Test"}}
{{template "header.html" .}}
{{template "flash.html" .}}
Hello: {{.variable1}}
{{template "footer.html" .}}

我第一次运行我的 web 应用程序时,我看到了 flash 消息。但是下次,如果我刷新页面,它就会消失!

我重新开始狂欢

谢谢

标签: gorevel

解决方案


这似乎是一个已知问题/预期行为。正如 github 上的讨论所暗示的那样,要使用 flash 消息来处理错误,您要么需要重定向:

c.Flash.Error("Message")
return c.Redirect("App/ShowError")

如果您需要在特定输入元素旁边添加错误消息,或者使用field 模板功能。

看到您没有在模板中呈现表单,我猜您需要添加重定向。


顺便说一句:狂欢被许多人认为是有害的。我敦促您不要使用试图强迫您使用 go 遵循经典 MVC 结构的框架。如今,大多数 Web 应用程序都是在客户端使用 react 和基于 API 的后端的单页应用程序。走这条路可能会让你的生活更轻松吗?


推荐阅读