Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F#模板引擎类似于mako?_F# - Fatal编程技术网

F#模板引擎类似于mako?

F#模板引擎类似于mako?,f#,F#,有人存在吗 我发现最接近的是-;但我并不为此感到高兴(特别是,我无法让它工作)。正如评论中所要求的,值得一提,这意味着您必须创建一个单独的C#项目,其中只包含模板及其支持模型(例如类似DTO的类) 该项目将被F#project引用和使用。这样的互操作应该是完全无缝的,这是一件好事:)除了PatrykĆwiek提到的那些,我还要看看Fue 以下是Fue中的基本模板: let html = "<div>{{{name}}}</div>" let compiledHtml =

有人存在吗

我发现最接近的是-;但我并不为此感到高兴(特别是,我无法让它工作)。

正如评论中所要求的,值得一提,这意味着您必须创建一个单独的C#项目,其中只包含模板及其支持模型(例如类似DTO的类)


该项目将被F#project引用和使用。这样的互操作应该是完全无缝的,这是一件好事:)

除了PatrykĆwiek提到的那些,我还要看看Fue

以下是Fue中的基本模板:

let html = "<div>{{{name}}}</div>"
let compiledHtml = init |> add "name" "Roman" |> fromText html
// compiledHtml now contains "<div>Roman</div>"
let html=“{{{{name}}”
让compiledHtml=init |>从文本html添加“name”“Roman”|>
//compiledHtml现在包含“Roman”
Fue是用F#编写的,并且支持F#类型,例如选项和歧视性联合:

<!--Option types-->
<div fs-if="someOption.IsSome">{{{someOption.Value}}}</div>
<div fs-if="someOption.IsNone">Nothing</div>

<!--Discriminated Union
type UserAccess =
    | Anonymous
    | Admin of section:string
-->
    <div fs-du="item" fs-case="Anonymous">Anonymous</div>
    <div fs-du="item" fs-case="Admin(section)">{{{section}}}</div>

{{{someOption.Value}}}
没有什么
匿名的
{{{section}}}


我认为这是一个相当普遍的.NET问题,你可以使用Razor(如果你能让它工作的话)或T4文本模板,在你的例子中,就是运行时文本模板。啊;我忘了T4模板了,谢谢!(如果你这样回答,我会接受的。)根据要求,我将评论改为回答:)