【问题标题】:return string as template返回字符串作为模板
【发布时间】:2014-09-15 23:04:40
【问题描述】:

我想在 golang 的 martini 中返回一个字符串作为模板:

m.Get("/", func(r render.Render) string {
    template := "Hello world! <form name='input' action='../first' method='post' ><input type='texte' name='toto'><input type='submit' value='Submit'></form>"
    r.HTML(200, "post", template)

})

但它返回一个错误: 函数结束时缺少返回

问候和感谢 业务员

【问题讨论】:

    标签: go martini


    【解决方案1】:

    你需要这样返回字符串:

    m.Get("/", func(r render.Render) string {
        return "Hello world! <form name='input' action='../first' method='post' ><input type='texte' name='toto'><input type='submit' value='Submit'></form>"
    })
    

    【讨论】:

    • 它返回我:你好世界!
      但没有表格...只是我的 html 在我的网页中打印为文本
    • 您需要以&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;.....&lt;/body&gt;&lt;/html&gt;开头的有效html
    • @Volker 虽然这是真的,但 Go 在大多数情况下都会透明地处理它。
    【解决方案2】:

    如果您想使用渲染,请从您的函数中删除字符串返回类型。

    m.Get("/", func(r render.Render) {
        template := "Hello world! <form name='input' action='../first' method='post' ><input type='texte' name='toto'><input type='submit' value='Submit'></form>"
        r.HTML(200, "post", template)
    
    })
    

    我假设“post”是您已经在目录结构中定义的模板,并且您作为参数传递的字符串将进入此模板。

    【讨论】:

      【解决方案3】:

      当你在 martini 中渲染一个字符串时,你必须使用 html 标签。

      m.Get("/", func(r render.Render) string {
          template := "<html>Hello world! <form name='input' action='../first' method='post' ><input type='texte' name='toto'><input type='submit' value='Submit'></form></html>"
          return template
      
      })
      

      【讨论】:

      • 那是无效的 html,请使用有效的 html 来保护一切。
      猜你喜欢
      • 2011-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多