Я пытался создать форму с помощью Websharper для сбора пользовательского ввода. На данный момент я определил три действия для своего сайта:
type MyAction =
| [<CompiledName "">] Index
| [<Method "POST">] GetUser of username : string
| Stats of username: string
Используя Sitelet.Infer, мне удалось реализовать базовый пользовательский интерфейс, но я понятия не имею, как обращаться к содержимому моего поля ввода (usernameInput):
Sitelet.Infer <| function
| Index ->
Content.PageContent <| fun ctx ->
let usernameInput= Input [Text ""]
{ Page.Default with
Title = Some "Welcome!"
Body =
[
Div [
Form
[
usernameInput-< [Name "username" ]
Input [Value "Request"] -< [Type "submit" ]
] -< [ Attr.Action (ctx.Link (* GetUser usernameInput.Content *) ); Method "POST" ]
]
]
}
| GetUser username ->
Content.Redirect <| Stats username
| Stats username ->
Content.PageContent <| fun ctx ->
{ Page.Default with
Body = [Text ("Stats for " + username)] }
Я заметил, что usernameInput не имеет поля типа «Значение» или около того, и я думаю, что либо ему нужно приведение, либо я делаю что-то не так.
Я бы предпочел не использовать JavaScript в своем коде (можно ли вообще смешивать элементы Html.Server и Html.Client в Sitelet?).