2011-01-29 76 views
0

我是新來的MVC和我昨天借一本書,從庫中asp.net MVC 2問題組織代碼在asp.net MVC 2

我有點困惑樣的代碼應該是什麼包括在模型,視圖和控制器中。我正在從書中進行用戶輸入驗證,如果我理解正確,似乎他們在「Model」中聲明變量,在「Controller」中驗證用戶輸入並在「View」中顯示網頁。

型號: -Declaring變量

e.g: 
class Contact: 
public string Name { get; set; } 
public string EmailAddress { get; set; } 

查看: -Contain HTML,HTML輔助代碼,顯示內容,並使用變量從 「模型」

e.g: 
<%: Html.TextBoxFor(model => model.Name) %> 
<%: Html.ValidationMessageFor(model => model.Name) %> 

控制器: - 「播放」/「操作」變量從Model +調用「View」在最後顯示網頁(返回View())。 (在這個例子中驗證用戶輸入)

e.g: 
if (String.IsNullOrEmpty(contact.Name)) 
    ModelState.AddModelError("Name", "Please enter your name."); 

我不知道,但在我看來,「控制器」是「重編碼」的一部分給我。另一方面,「視圖」是很好的舊HTML,顯示網站的標記和「模型」是存儲數據的地方(例如聲明變量)。

請讓我知道我是否在正確的方向。 謝謝:)

回答

3

我不知道,但在我看來,「控制器」是「重編碼」部分對我

你應該避免脂肪控制器。實際上,控制器可能依賴於包含應用程序業務邏輯的服務層。該服務層本身可能依賴於在模型上執行數據訪問的存儲庫(簡單的CRUD操作)。因此,控制器只需調用服務層上的業務操作調用來獲取/更新模型,然後將視圖模型傳遞給視圖以顯示它。

+0

換句話說,MVC可能只是一個更大的應用程序的一小部分。如果你沒有任何其他類庫項目,並且你只用一個MVC項目構建整個應用程序,那麼你並沒有充分利用其全部潛力。 – danludwig 2011-01-29 10:59:47

0

我也是MVC的新手,我開始做的第一件事就是查看Scott Hanselman和Phill Haack給出的大部分演講。所以你可以試試這個:[http://channel9.msdn.com/blogs/matthijs/aspnet-mvc-2-basics-introduction-by-scott-hanselman] [1]

[1]:http://channel9.msdn.com/blogs/matthijs/aspnet-mvc-2-basics-introduction-by-scott-hanselman開始。從我得到的結果來看,Darin是對的。儘量避免使用胖控制器,並使用模型的存儲庫。另外,我注意到,對於簡單的驗證(需要,最大字符串長度,這樣的),最好使用DataAnnotion型號...所以你聯繫的模型可能是這樣的:

class Contact: 
[Required] 
public string Name { get; set; } 
public string EmailAddress { get; set; } 

這將使名稱在編輯/創建視圖上需要屬性。