2
我想使用Razor Engine作爲獨立的模板引擎。除了我不知道哪些屬性會傳遞給Razor,因此我無法聲明列出我的變量的對象。我目前還使用這樣一個字典,讓我寫這樣的事情:動態剃刀數據源
@Model.Vars["MyProperty"]
但是我想能夠簡單地寫:
@MyProperty
是否有某種方式來做到這一點?
在此先感謝您的答案。
我想使用Razor Engine作爲獨立的模板引擎。除了我不知道哪些屬性會傳遞給Razor,因此我無法聲明列出我的變量的對象。我目前還使用這樣一個字典,讓我寫這樣的事情:動態剃刀數據源
@Model.Vars["MyProperty"]
但是我想能夠簡單地寫:
@MyProperty
是否有某種方式來做到這一點?
在此先感謝您的答案。
你可以使用一些剃刀語法爲您的視圖提供智能感知:
@inherits MyNamespace.MoreNamespace.MyCustomRazorModel<MyModelType>
只要你MyCustomRazorModel
實現Write
,WriteLiteral
等方法,那麼一切都應該正常工作,你可以使用下面的需要在您的看法:
@MyProperty
假設你有一個像這樣的定義:
public class MyCustomRazorModel<T>
{
public string MyProperty { get; set; }
}
我提到你的支持Razor實現應該可能是泛型的,這樣你就可以將它用於任何你想要的模板模型。這也是Razor引擎在ASP.NET中的工作方式,它提供了一個通用模型,該模型公開@Model
屬性中的模型。
編輯
例如,看看下面的類,看看框架傢伙是怎麼做的:
http://msdn.microsoft.com/en-us/library/gg402107(v=vs.108).aspx
這是在ASP中RazorEngine後盾視圖。淨。對於獨立實現,您將爲此視圖創建一個支持類型,以繼承此類。
爲什麼@ Model.MyProperty不起作用? – Grozz