2010-11-15 91 views

回答

30

如果使用強類型的意見,你應該:

public static MvcHtmlString MyHelper<TModel>(this HtmlHelper<TModel> htmlHelper) 
{ 
    TModel model = htmlHelper.ViewData.Model; 
    return MvcHtmlString.Empty; 
} 

如果你不使用強類型的意見,你不應該:

public static MvcHtmlString MyHelper(this HtmlHelper htmlHelper) 
{ 
    object model = htmlHelper.ViewData.Model; 
    return MvcHtmlString.Empty; 
} 
+0

@Darin如果你想爲某個特定的模型強制類型化一個Helper,你會做類似'public static MvcHtmlString FooBarFor(這個HtmlHelper htmlHelper)'嗎? – AaronLS 2012-11-01 21:43:42

+0

@AaronLS,確實如此。 – 2012-11-02 06:35:59

-16

HTML傭工是以編程方式生成HTML的不好方法。對於頁面類文件中的代碼和單獨文件中的HTML標記,Web表單要好得多。是的,HTML助手會將一些代碼放在單獨的類文件中,但是您正在從HTML頁面調用代碼。什麼阻止你直接在你的視圖頁面上編寫代碼。 MVC支持許多你不需要做的壞習慣,但由於某種原因,Web Forms開發人員必須做壞習慣,因爲它是允許的。如果你很好地學習Web Forms,你將開發使用現代面向對象模式的可維護和可擴展的Web應用程序,而不是像HTML助手那樣的過程邏輯。

+0

我不是任何正在寫入類文件的標記的粉絲。儘可能避免傭工。儘管MVC肯定有它的問題(因此對MVVM有一定的推動力),Web Forms本質上已經被打破,它遭遇瞭如此多的痛苦折衷。 – AsciiSmoke 2015-02-03 11:17:41