[英]Can I use anonymous types as a Razor model?
我有一台C#服务器,在其中使用RazorEngine
NuGet库手动呈现一些Razor视图。 提供给视图的模型是匿名类型,其创建方式如下:
new[] { Foo = "Bar", Baz = "Example" }
由于我呈现模板的方式,Visual Studio无法识别我的模型。 这意味着即使它可以正常工作,Visual Studio仍认为这样的代码无效:
<p>@Model.Foo</p>
为了纠正这一点,我发现了@model
指令,但这似乎仅适用于作为指定模型的类。 例如,这些都被视为无效:
@model { string Foo, string Baz }
@model (string Foo, string Baz)
有什么办法可以让@model
使用匿名类型? 另外,命名元组也将使编译器满意,因为我从不从模板更新模型的任何字段。
是的,可以,但是我通常不会这样做,因为强类型视图模型具有其优势。
像这样创建模型:
dynamic model = new ExpandoObject();
model.Foo = "Bar";
model.Baz = "Example";
然后您可以在视图中访问它,没问题
<h1>@Model.Foo</h1>
<h2>@Model.Baz</h2>
注意 默认情况下, RazorPage<T>
被定义为RazorPage<dynamic>
,因此无需声明@model dynamic
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.