每当我在我的网站中使用表单时,我都需要将“操作”属性传递给它(我不想将其留空,因为我更喜欢验证标记)。现在它看起来像这样:
registerPage = dir "test" $ do
nullDir
let action = "/test" :: String
let mkForm = form action
let prefix = "register"
eForm <- happstackEitherForm mkForm prefix registerForm
对于操作与它们所在的页面相同的表单,我不喜欢像现在这样写两次 URL。有没有办法获取“当前网址”?
registerPage = dir "test" $ do
nullDir
action <- {- ... -}
到目前为止,我最好的选择是将动作转换为显式参数/变量
registerUrl :: String
registerUrl = "register"
registerPage = dir registerUrl $ do
nullDir
let action = "/" ++ registerUrl
但如果我这样做,那么我将有一个额外的参数,我需要命名并传递给我的函数。我也认为需要这样做"/" ++
有点难看。