gpt4 book ai didi

.net - RazorEngine(在 MVC 之外) - 可以在不明确指定模型类型的情况下注册模板吗?

转载 作者:行者123 更新时间:2023-12-02 04:09:37 25 4
gpt4 key购买 nike

是否可以在不指定模型类型的情况下注册模板?

目前它是这样工作的(取自:documentation):

//Code to get template string from file xxx.cshtml into template variable
Razor.Compile(template, typeof(SomeModel), "complex");

但是我想预编译模板,从 @model 中获取模型类型定义。或 @inherits View 中的指令。这可能吗?

最佳答案

Razor.Compile编译时不需要指定模型类型。

public class ActualType { public string Firstname {get;set;}}

Razor.Compile("@Model.Firstname", "outputname");
Razor.Run<ActualType>(model, "outputname");

应该为你运行就好了。
@model声明尚不可用。目前在补丁列表页面 ( http://razorengine.codeplex.com/SourceControl/list/patches) 上有一个补丁,但是它只添加了设计时支持而不是运行时。目前的原因是因为 MVC RazorEngine 已经这样做了,我们不想混淆这个 razor 引擎是否与 MVC razor 实现相同(很多人认为)

我们正在考虑为 v2.2 实现它,当我们都有时间研究它时。

只要您传入的模型与模板使用的所需参数匹配,您就可以使用。

其实修改补丁强制模板使用 @model应该不会太难声明为 template<t> .如果这是一个严肃的要求,我可能会在今晚工作。我很好奇为什么你不想将它包含在编译声明中,除非你担心改变模型或者你事先不知道模型......但最后你总是知道你之前的类型传进去。

关于.net - RazorEngine(在 MVC 之外) - 可以在不明确指定模型类型的情况下注册模板吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5952376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com