[英]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.