1

注:我已經看過這個鏈接和殘疾人CustomTools,仍然收到此錯誤:MvcTextTemplateHost not found嘗試使用MVCScaffolding與問題,創建視圖

我想在一個命令創建,更新,詳情可創建自定義視圖,過濾器和列表操作。我可以通過右鍵單擊並選擇新建視圖來添加它們,但是當我鍵入Scaffold AddView SampleModel時,我收到以下錯誤消息:

無法找到類型或名稱空間名稱'MvcTextTemplateHost'你錯過了使用指令或程序集引用?)。

模板文件是AddView.cs.t4。我嘗試將它重命名爲.tt,但我無法讓Powershell查找.tt文件。有任何想法嗎?

回答

3

MvcScaffolding使用自己的自定義模板主機,不使用MvcTextTemplateHost。我會看看MvcScaffolding NuGet package附帶的T4模板。下面顯示了其中一個模板的開頭。

<#@ Template Language="C#" HostSpecific="True" Inherits="DynamicTransform" #> 
<#@ Output extension="aspx" #> 
<# var viewDataType = (EnvDTE.CodeType) Model.ViewDataType; #> 
+0

Model.ViewDataType和MvcTextTemplateHost有什麼不同嗎? – tehdoommarine

+1

是的,他們是不同的。 Model和Model.ViewDataType是不同的對象。 MvcScaffolding根據您要搭建的模型構建這個動態模型對象(Model),並添加可在T4模板中使用的額外屬性。 Model.ViewDataType返回視圖的類型。它用於在生成視圖時使您的視圖具有強類型。此Model對象上有許多其他屬性,您可以看到這些屬性在包含在MvcScaffolding NuGet包中的T4模板中使用。 –