2011-02-15 33 views
0

我們正在使用(需要知道文件的位置,謝謝)創建視圖或控制器的自定義T4代碼模板。默認實現使得這種類型的第一行。修改ASP.NET MVC的T4代碼模板以擺脫完整的命名空間參考

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<ProjectNameHere.ViewModels.ViewModelClass>" %> 

我們已經在Web.config定義視圖模型和MVC的命名空間,所以我想代碼模板來生成這個。

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="ViewPage<ViewModelClass>" %> 

任何建議如何修改默認模板來獲得這樣的結果?哪些模板行實際生成這些?

更多信息

我知道那裏的文件和修改,已經取得進展。問題是在他們使用的模板中

string mvcViewDataTypeGenericString = (!String.IsNullOrEmpty(mvcHost.ViewDataTypeName)) ? "<" + mvcHost.ViewDataTypeName + ">" : String.Empty; 

看來ViewDataTypeName包含完整的名稱空間引用。我想得到的只是命名類(在這種情況下,ViewModel類名)

回答

1

你可以在這裏找到模板:

* \微軟的Visual Studio \ Common7 \ IDE \的ItemTemplate \ CSHARP \網絡\ MVC 2 \ CodeTemplates *

在那裏,你可以編輯每個模板生成的代碼,模板線改變爲每個模板,所以我不能告訴你,但你會發現immidiately他們。

編輯

爲Web.Extensions來源是不可用的,但你可以利用relector的和 \微軟的Visual Studio \ Common7 \ IDE \ Microsoft.VisualStudio.Web.Extensions反映。 dll程序集,以查看「mvcHost」提供了哪些內容:)

然後,您會注意到一個ViewDataType屬性,它是一個「Type」,然後您應該可以創建一些邏輯來獲取類名稱。

+0

見編輯的問題 – Tx3 2011-02-15 13:49:27