मैं एक ASP.NET MVC 3 आवेदन विकासशील हूँ उपयोग करते हैं, मैं पहले के आदेश मेरे ऐप की कक्षाएं बनाने के लिए में इकाई की रूपरेखा कोड का उपयोग कर रहा है, और मैं भी है डीबीसीएन्टेक्स्ट और डीबीईएनटीटीएस परिभाषाओं को साफ करते हुए, इस पर संचालन करने के लिए एक भंडार।ASP.NET MVC - एक नया मॉडल बनाने या एक इकाई की रूपरेखा वर्ग
मेरा संदेह विचारों को प्रस्तुत करने और जिस तरह से एक संपादन मॉडल सहेजा गया है, उसके बारे में है।
अगर मैं इस इकाई है कि मेरी DB में संग्रहीत एक उपयोगकर्ता का प्रतिनिधित्व करते हैं:
//Entity:
public class User
{
[Key]
public int IdUser { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
}
और मुझे, प्रथम नाम, अंतिम नाम, ईमेल और NewPassword, ConfirmPasword और CurrentPassword के साथ एक दृश्य दिखाने के लिए आदेश में यह बताने के लिए चाहते हैं उपयोगकर्ता परिवर्तनों की पुष्टि करने के लिए CurrentPassword टाइप करते हुए अपना डेटा बदलते हैं, इसलिए मेरा संदेह है कि ConfirmPasword और CurrentPassword की तरह मेरी इकाई में नहीं है इसलिए मुझे इस दृश्य के लिए एक नया मॉडल बनाने की आवश्यकता है और मैं जिस जानकारी से चाहता हूं उसे कॉपी करें इसे बचाने के लिए मेरे डेटाबेस इकाई में मेरा नया मॉडल? जैसा:
public class UpdateUserModel
{
[Required]
[Display(Name = "Name")]
public string FirstName{ get; set; }
[Required]
[Display(Name = "Last Name")]
public string LastName{ get; set; }
[Required]
[DataType(DataType.EmailAddress)]
[Display(Name = "Not valid email")]
public string Email { get; set; }
[DataType(DataType.Password)]
[Display(Name = "New password")]
public string NewPasword{ get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm the New Pasword")]
[Compare("NewPasword", ErrorMessage = "Password doesn´t mach.")]
public string ConfirmPasword{ get; set; }
[Required(ErrorMessage = "Need to specify the current password to save changes")]
[DataType(DataType.Password)]
[Display(Name = "Current Password")]
public string CurrentPassword { get; set; }
}
और नियंत्रक मैंने बनाया में:
public ActionResult UpdateUser(UpdateUserModel model)
{
User u = (User)Membership.GetUser();
u.FirstName = model.FirstName;
u.LastName = model.LastName;
u.Email = model.Email;
if (!String.IsNullOrEmpty(model.NewPassword))
{
u.Password = FormsAuthentication.HashPasswordForStoringInConfigFile(model.NewPassword.Trim(), "md5");
}
repository.UpdateUser(u);
return View();
}
रहे हैं इस तरह एक नियंत्रक होने करने के लिए किसी भी तरह:
public ActionResult UpdateUser(User u)
{
repository.UpdateUser(u);
return View();
}
क्योंकि अगर मेरे पास है कि, मैं कैसे इस विशिष्ट दृश्य के लिए सत्यापन करने के लिए, ConfirmPassword या CurrentPassword जैसे फ़ील्ड को जोड़ सकते हैं।
ठीक है, मुझे यह मिल गया। जैसा कि मैंने समझा है, प्रत्येक दृश्य के लिए एक नया मॉडल बनाने के लिए बेहतर है और फिर इसे इकाई में मैप करें। इसका मतलब है कि मूल वर्ग, इस वर्ग में मान्यता के साथ मेटाडेटा माना जाता है और वह सामान नहीं है? यह मेरे मॉडल को एमवीसी से एमवीवीएम में बदल देगा या बेक्यूज नहीं होगा मेरे पास अभी भी नियंत्रक है? ऑटोमपर के बारे में, क्या आप https://github.com/AutoMapper/AutoMapper का उपयोग कर रहे हैं? – juan25d
कृपया अद्यतन 1 –
देखें तो मुझे सत्यापन और मेटाडेटा कहां लिखना चाहिए? क्लास UserViewModel में नहीं है? – juan25d