go - 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 消息。但是下次,如果我刷新页面,它就会消失!
我重新开始狂欢
谢谢
解决方案
这似乎是一个已知问题/预期行为。正如 github 上的讨论所暗示的那样,要使用 flash 消息来处理错误,您要么需要重定向:
c.Flash.Error("Message")
return c.Redirect("App/ShowError")
如果您需要在特定输入元素旁边添加错误消息,或者使用field
模板功能。
看到您没有在模板中呈现表单,我猜您需要添加重定向。
顺便说一句:狂欢被许多人认为是有害的。我敦促您不要使用试图强迫您使用 go 遵循经典 MVC 结构的框架。如今,大多数 Web 应用程序都是在客户端使用 react 和基于 API 的后端的单页应用程序。走这条路可能会让你的生活更轻松吗?
推荐阅读
- spring-boot - Flyway 初始化失败:找不到以下迁移脚本位置:-classpath:db / migrations
- typescript - 过滤器上的声纳立方体问题
- jquery - 仅在禁用整个网格时如何启用剑道 ui 表格铅笔图标
- html - 调整屏幕大小时将卡片彼此对齐
- flutter - 验证英语单词是否有效,如在字典 Flutter Dart 中找到的那样
- azure - 供应请求延迟或发送失败
- android - 在 Kotlin 中动态添加和删除 Android 中的视图
- mysql - 将罗马数字转换为大写
- spring-boot - 如何连接到 ECS 集群上运行的 WebSocket API?
- twine - 方糖将数据推入对象并对其进行操作