2010-01-24 43 views
1

我對ASP.NET MVC和MVC一般來說很新。從舊式的「意大利麪條」設計實踐轉到WebForms是一個很大的改變,但在我看來這似乎更大(但更好)。ASP.NET-MVC數據/模型的最佳實踐newb

我有一些關於數據特定任務的問題。

  1. 爲了簡單起見,說我有(50)稱爲與PIN INT PinId的柱結構的數據庫表,值VARCHAR並與列ENTRYID INT,PinId INT另一個表稱爲條目。
  2. 我有一個MVC視圖,它將一個字符串值作爲PIN碼。
  3. 目標是在Entry表中插入一行。要做到這一點,我必須查找相應的PinId到提供的值。

我的問題是,我在哪裏執行數據查找。我可以輕鬆地在控制器中執行插入新Entry對象的操作,但這是正確的嗎?不知怎的,這種查找應該在模型中執行嗎?

此外,我遵循WROX專業ASP.NET MVC 1.0中概述的說明和實踐。我創建了一個DataRepository類來處理我所有的數據庫重負載,並且正在使用該書中描述的驗證類。

任何見解都會受到歡迎,因爲我是MVC的真正新手。

歡呼聲和感謝堆垛機!

回答

1

看看ModelBinders。這使您可以定義將來自發送到您的操作的數據的輸入綁定到Model對象的方式。您的操作也可以採取您想要保存的類型的參數,並且在ModelBinder中,您可以對存儲庫進行一些查找等。

如果您執行搜索,有很多好博客文章,現在你知道要看ModelBinder了。斯科特Hanselman有一個良好的基礎之一:

http://www.hanselman.com/blog/IPrincipalUserModelBinderInASPNETMVCForEasierTesting.aspx

0

切勿將搜索,添加,更新,控制器內刪除代碼。實際上,控制器中應該沒有代碼。

在MVC世界中,控制器只是一種從視圖到業務層的模型,反之亦然。目標是儘可能少地使用代碼。

如果你可以使用Linq2SQl,那麼這將是放置實體的好地方。然後,您可以使用您的數據存儲庫來完成繁重的工作,不僅如你所說的那樣,還包括所有其他小事情。

Linq2SQL將創建一個部分類。所以,你可以創建另一個部分類,它將爲你做CRUD和搜索工作。