2012-02-07 95 views
1

我正在構建我的第一個mvc3應用程序。我有幾個問題是:ASP.NET MVC3第一次問題

1)剃鬚刀視圖引擎讓我把代碼嵌入到視圖中。這不是我們曾經試圖逃脫的嗎?即保持代碼不在aspx中。

2)模型是否需要實現一個接口?

3)模型是否需要有方法?或者只是屬性?

感謝

回答

4

很模糊的問題,但我會給你我的5C價值:

  1. 沒錯,但我們把剃刀意見的代碼通常只有生成HTML的控制。 。MVC3中的幫助器方法利用Viewmodels中的數據屬性並生成驗證等。 如果這麼說,完全可以選擇多少代碼放在視圖中。

  2. 的ViewModels應該是蠢(POCO)成爲可能,而業務邏輯方法應該是把你的域模型,把好DDD開發人員,你是;)

1
  1. 您在視圖中放置的代碼應該是渲染代碼而已。簡單的循環重複,撥打EditorForDisplayFor或像using (Html.BeginForm())的東西。主要的商業邏輯不應該放在視圖層。
  2. 不,只是屬性。你可以添加非常簡單的幫助器方法,但重要的東西是屬性,所以即使幫助器的東西也應該作爲只讀屬性來實現。

實際上,第一部分對於aspx引擎和WebForms也是如此。和Php,和經典的ASP,並...

1

1)它可能看起來有點像這樣,但真的取決於代碼是什麼。恕我直言,你應該真的應該避免在視圖中的任何邏輯或代碼,除了直接與渲染視圖有關。儘管如此,Razor在視圖中提供了一種可愛的乾淨編碼方式。

2)否 - 任何類都可以成爲模型。

3)沒有什麼可以阻止你在模型上放置方法 - 但實際上它們應該是非常簡單的數據傳輸對象 - 它們只是「攜帶」數據。所以更多的時候,堅持屬性。

1

1)剃鬚刀視圖引擎讓我把代碼嵌入到視圖中。這不是我們曾經試圖逃脫的嗎?即保持代碼不在aspx中。

不,我們曾經試圖讓邏輯脫離視圖。這對視圖有更多的控制,但不應該被用作實現邏輯的方法。

2)模型是否需要實現接口?

沒有。

3)模型是否需要有方法?或者只是屬性?

模型只是類。他們定義你班級的結構。