簡體   English   中英

查看 ASP.NET MVC3 中的 Model 模式和用法(另外,使用 EF 4.1)

[英]View Model Patterns and usage in ASP.NET MVC3 (Also, using EF 4.1)

幾天來我一直在尋找這個問題的答案,這讓我發瘋。 目前,我正在使用 ASP.NET MVC 3 開發一個項目,並嘗試按照 controller 方法使用 ViewModel,正如我查看過的許多文章和教程所建議的那樣。 為了更好地說明我的要求,我將在下面概述:

假設我有一個非常簡單直接的 model。 用戶、客戶、地址、電話號碼、訂單、產品、類別等...當用戶在我的網站上注冊新帳戶時,我想:1)為他們創建一個帳戶(這只是一個帳戶 ID,客戶類型)2)將他們的客戶人口統計數據添加到客戶 3)添加 N 個地址和地址類型 4)添加 N 個電話號碼和類型。

據我所知,我決定需要一個 RegisterCustomerForRegistrationControllerViewModel。 我的困境是這個 model 是什么樣的? 我試圖盡可能地干燥,但在實施這種模式時,我似乎在每一輪都重復自己。 我將 DataAnnotations 放在什么級別進行驗證? 那么,即使我只想在給定的 ViewModel 中使用 class 中的一個屬性,我是否也只需新建一個新的 Customer()?

在這一點上,我什至不相信這是一個正確的假設。 關於這個話題似乎有很多意見,但實施的具體例子卻很少。 我希望有人能指出我正確的方向,並可能會在此過程中提供一些代碼片段......我希望這一切都足夠清楚,如果沒有,請隨時提出后續問題。

再次,提前感謝!

跨應用程序的兩個不同層重復簡單屬性並不違反 DRY。 它只是很好的設計。

ViewModels 上的 DataAnnotations go。

ViewModel 看起來像

public class RegisterCustomerViewModel
{
    [Required]
    public string Name { get; set; }
    public List<AddressViewModels> Addresses { get; set; }
    public List<PhoneNumberViewModel> PhoneNumbers { get; set; |

} 

就像 jfar 一樣,我會采取一個簡單的方法:一個視圖,一個視圖 model 和 DataAnnotations。

話雖這么說……我知道你的感受(不自信),我理解,因為我自己也經歷過。 我的結論:除非您認為您的 web 應用程序需要如此多的層、原則和模式的開銷,否則請保持簡單。 我相信沒有完美的建築。 有什么有效的,有開銷。 有時,有效的方法確實很復雜。 問問自己是否需要這種復雜性。

將我的第一句話作為您問題的答案,並將 rest 作為我的拙見。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM