小编Ray*_*Ray的帖子

检查 RenderFragment 是否为空

有没有办法检查 RenderFragment 是否为空?

例如,在下面的代码中,MyComp显示DetailifOpen为真,您可以Open通过单击标题进行切换。现在,如果没有标题,我希望Detail片段始终处于打开状态。如果有像HeaderTitle.IsEmpty.

    <MyComp Open="false">
        <HeaderTitle>
             @if (!String.IsNullOrEmpty(hdr)) {
                 ...
                <div class="flex-grow"> @hdr </div>
            }
        </HeaderTitle>
        <Detail>
            ...
        </Detail>
   </MyComp>
Run Code Online (Sandbox Code Playgroud)

编辑

为了进一步讨论,我在这里添加了一个功能请求。

razor asp.net-core blazor

7
推荐指数
1
解决办法
1478
查看次数

无法用递归类型约束制作对象?

这是一个纯粹的学术问题,但是 关于类型约束的这个问题很难过.提问者以此为例:

type Something<'a, 'b when 'b :> seq<'b>>() =
    member __.x = 42
Run Code Online (Sandbox Code Playgroud)

哪个f#开心地编译.现在的问题是你如何制作这个对象?

let z = new Something<???, ???>()
Run Code Online (Sandbox Code Playgroud)

f# types type-constraints recursive-type

6
推荐指数
1
解决办法
96
查看次数

Asp.net:不支持“application/grpc-web”

我在浏览器上运行了 Asp.net core 和 gRPC...但现在我得到:

info: Grpc.AspNetCore.Server.ServerCallHandler[2]
  Request content-type of 'application/grpc-web' is not supported.
Run Code Online (Sandbox Code Playgroud)

关于如何追踪这个问题有什么想法吗?

code-first grpc asp.net-core blazor grpc-web

6
推荐指数
2
解决办法
3905
查看次数

未定义F#FS0039命名空间

这是VS2017中的问题图:

WTF!

编译器抛出:

FS0039 The namespace 'Web' is not defined.

但是在它之前的'Web'就可以了!

当然,我已经引用了System.Web.Mvc.dll.事实上,如果我把它放在同一个项目中的特定文件中(在本例中是Global.asax.fs),那么开放引用(和代码)就可以正确编译.


更新:

TLDR; 这个问题神秘地消失了......

多次重新编译后,重新启动并重新启动问题仍然存在.最后,我在.fsproj中手动编辑了文件顺序(在Global.asax.fs之后移动myfile.fs)并编译了!然后检查,我将文件顺序移回原始订单......它仍然有效!?!

不知道该说些什么.如果有人有同样的问题,请知道你并不孤单.摆弄它,等待和摆弄一些,问题就会消失......我想......

asp.net f#

5
推荐指数
0
解决办法
661
查看次数

f#中的重载取消引用(!)和赋值(:=)运算符

我正在尝试重新引用解除引用(!)和赋值(:=)运算符,但不是全局运算符.我仍然希望保持通常的ref op重载.这里有一些代码来说明问题:

type MyVar<'a>(init:'a) =
    let mutable _value = init
    member __.Get() = _value
    member __.Set x = _value <- x
    //static member (!) (s:MyVar<'a>) = s.Get()      // compiles, doesn't work
    //static member (:=) (d:MyVar<'a>, s) = d.Set(s) // warning, doesn't work

//let inline (!) (x :MyVar<'a>) = x.Get()           // overrides !ref
//let inline (:=) (x :MyVar<'a>) (v :'a) = x.Set(v) // overrides ref := v 
let inline (!!) (x :MyVar<'a>) = x.Get()            // works but ugly
let inline (.=) …
Run Code Online (Sandbox Code Playgroud)

f# overloading operator-keyword

2
推荐指数
1
解决办法
104
查看次数

带有 nul '\0' 的 Javascript JSON 字符串

基于属性的测试发现了很多错误。使用 PostgreSQL 修复 bug 后,它最终表现为 JavaScript bug。这是在 Chrome 中测试的:

JSON.stringify("wee");      // "'wee'"
JSON.stringify("we\0e");    // ""we\u0000e""
JSON.parse("'we\u0000e'");  // Uncaught SyntaxError: Unexpected token in JSON at position 0
JSON.parse('"we\u0000e"');  // Uncaught SyntaxError: Unexpected token in JSON at position 3
JSON.parse("\"we\u0000e\"");  // Uncaught SyntaxError: Unexpected token in JSON at position 3
JSON.parse(JSON.stringify("we\u0000e")); // "we e" !!
Run Code Online (Sandbox Code Playgroud)

问题是 JSON 是否应该支持字符串中的 '\0'。PostgreSQL 和 C/C++ 说不。其他人说肯定。还有人说也许...

不管怎样,Chrome JS 中的 JSON.parse/stringify 之间肯定存在一些不一致。其他json解析器对'\u0000'没有问题。

我对最后一行完全感到困惑!

javascript null json

2
推荐指数
1
解决办法
2466
查看次数

这是异步流水线操作员吗?

如果我们定义这样的|>!运算符怎么办:

let (|>!) a f = async {
    let! r = a
    return f r
} 
Run Code Online (Sandbox Code Playgroud)

然后而不是写作

let! r = fetchAsync()
work r
Run Code Online (Sandbox Code Playgroud)

我们可以写

fetchAsync() |>! work
Run Code Online (Sandbox Code Playgroud)

这是一个好主意还是会产生效率低下的代码?

f# asynchronous pipeline

1
推荐指数
1
解决办法
63
查看次数