2010-01-06 57 views
0

在我的數據庫中,可能有十幾個表代表查找類型(所有代碼都有ID和名稱列 - 不,它們必須保留爲獨立表,不會標準化放入一張桌子)。我正在構建一個管理應用程序,我希望管理員能夠添加/編輯/刪除/列出所有這些查找。我知道我可以重新使用這個模型,但是有沒有一種更有效的方法可以讓我在asp mvc 2應用程序中編寫它,除了編寫3個視圖,每個查找類型有1個控制器,導致48個視圖和12個控制器?asp mvc設計問題:多個數據類型的單視圖

回答

1

我不建議刪除模型,控制器和視圖之間的耦合。這種模式背後的想法是,您可以將工作流中的業務邏輯與演示分開。如果您開始將多個模型混合到相同的視圖/控制器中,則會變得混亂。

也許嘗試做你正在嘗試使用母版頁,讓你的模型從一個共同的基類或類似的東西繼承?通過這種方式,您可以重複使用代碼而不會將其摧毀到相同的文件中。

0

如何將更高級的ORM映射合併到一個實體中?

0

我會這樣做一個控制器和每個CRUD操作的動作/視圖(1x4)。如果模式在一個或多個查找表上發生變化,那麼我會處理它。否則,如果您爲每個表格添加一列,請考慮所需工作:您必須更新48x12或任何文件。

你如何做它的細節取決於你的模型,但它可以簡單地使用ADO.NET並返回一個DataTable或類似的填充動態SQL語句,其中表名由視圖提供。當然,如果你使用字符串連接,你需要防止SQL注入。

創建視圖將類似地使用來自發布表單的表名來知道使用發佈的數據更新哪個表。

0

調查使用T4模板(decent example)建立一切。您應該能夠編寫基於每個模型的控制器和視圖。

對不起,我的答案是與48個視圖和12個控制器一起使用...設置了代碼,以便如果添加更多查找類型,您只需重新運行代碼即可,控制器和視圖被設置。