是否可以使用 Webpart GET 值创建 class 实例

Is that possible to create a class instance with webpart GET values

我创建了一个 "Game" class 并且我正在尝试使用我的 webpart 路径中的值来创建它的一个实例。

我的实例需要一个 playerName,所以我尝试创建一个名称为 value

let g:game.Game = new game.Game()

let php =
request (fun r ->
    match r.queryParam "playerName" with
    | Choice1Of2 name ->  new game.Game(1,name,"hyy")//OK (sprintf "playerName: %s" name)
    | Choice2Of2 msg -> BAD_REQUEST msg)

let webPart = 
choose [
    path "/" >=> (OK "Home")
    path "/elm/api/create.php" >=> php
    ]
startWebServer defaultConfig webPart

但是它不起作用,因为这个表达式应该是 HttpContext 类型而不是 Game 类型。

我想创建一个实例并根据我的路径值调用 class 的方法。

首先:你不能return 2 种不同类型的函数

let php =
    request (fun r ->
        match r.queryParam "playerName" with
        | Choice1Of2 name ->  new game.Game(1,name,"hyy")
                              ^^^^^^^^^^^
                              //should probably be a OK 
        //OK (sprintf "playerName: %s" name)
        | Choice2Of2 msg -> BAD_REQUEST msg)

那么你也应该Json确定你的Game对象。所以你的代码可能应该看起来像这样

| Choice1Of2 name ->  
      new game.Game(1,name,"hyy")
      |> toJson
      |> OK

请将 toJson 替换为您选择的 Json 库的调用