0
我已經下載了VS2010中的MVCScaffolding nuget包。我試圖從我的模型中檢索[DisplayName數據註釋以便在index.cs.t4模板中使用它。在T4模板中檢索[DisplayName] DataAnnotation
此頁面OneToMany Relationships向我展示瞭如何修改索引模板以提供一個鏈接,該鏈接將我帶到子對象的控制器索引。在這種情況下,從電子郵件到電子郵件收件人。問題是我已經打電話給我的控制器emailcontroller和emailrecipientscontroller,而不是他們較不描述的表名稱,我寧願隱藏反正。我已經同樣裝飾了t4模板使用的元數據對象(tbl_My_unwieldytablename_emailMetadata)和這個顯示名稱(emailrecipients)dataannotation,我希望我可以修改模板以替換關係的名稱以使用顯示名稱,這是我的控制器名稱,例如
[MetadataType(typeof(tbl_My_unwieldytablename_emailMetadata))]
public partial class tbl_My_unwieldytablename_email
{
internal sealed class tbl_My_unwieldytablename_emailMetadata
{
[ScaffoldColumn(false)]
[Required(ErrorMessage="id is required")]
public Int32 id { get; set; }
[DataType(DataType.Date)]
public DateTime send_date { get; set; }
[StringLength(255)]
public String title { get; set; }
[DataType(DataType.MultilineText)]
public String message { get; set; }
[StringLength(50)]
public String author { get; set; }
[StringLength(80)]
[DataType(DataType.EmailAddress)]
public String author_email { get; set; }
[DataType(DataType.MultilineText)]
public String attachment { get; set; }
[DataType(DataType.Date)]
public DateTime created_date { get; set; }
public Int32 batches { get; set; }
[DataType(DataType.Date)]
public DateTime complete_date { get; set; }
[DisplayName("emailrecipients")]
public EntityCollection<tbl_My_unwieldytablename_email_recipients> tbl_My_unwieldytablename_email_recipients { get; set; }
}
乾杯 添
IM困惑,您認爲我應該這樣做或什麼它將幫助?你指的是控制器類嗎? – Tim
它應該將笨拙的表名映射到您的類名稱。既然你已經有了數據庫中的表,如果你在類的上面添加數據屬性表(「tablename」),那麼mvc將會映射它們,這樣你的類就可以被命名爲不太笨拙的東西。例如'[Table(「tbl_My_unwieldytablename_email」)] public partial class Email'這也會自動讓mvc知道使用emailcontroller。 – Mike
嗨邁克,不知道這將適合我的情況,我的元數據類有實際的表名稱,但我用友好的名字裝飾的關係。它是我想修改的腳手架視圖(而不是腳手架元數據類)的映射。如果我可以找到一種方法來裝飾檢測和裝飾外鍵字段,如在一對多的頁面中我把一個鏈接到上面然後這將排序的東西。但是現在我有點難以忍受t4模板語法。 – Tim