में आधार दृश्य मॉडल के गुणों को ओवरराइड करना मेरे पास एक दृश्य मॉडल है जो दो अलग-अलग पृष्ठों द्वारा साझा किया जाता है। दृश्य मॉडल एक संपत्ति के अपवाद के साथ काफी समान हैं: पता। दृश्य मॉडल में नाम और स्थान फ़ील्ड शामिल हैं। हालांकि, ग्राहक दृश्य का पता लेबल पढ़ना चाहिए: ग्राहक पता और कर्मचारी दृश्य का पता लेबल पढ़ना चाहिए: कर्मचारी पता। वे अलग-अलग त्रुटि संदेश भी प्रदर्शित करेंगे।एएसपी.नेट एमवीसी 3
public class BaseLocation
{
[Display(Name="Your Name")]
public string Name {get;set;}
public virtual string Address {get;set;}
}
public class CustomerLocation : BaseLocation
{
[Display(Name="Customer Address")]
public override string Address {get;set;}
}
public class EmployeeLocation : BaseLocation
{
[Display(Name="Employee Address")]
public override string Address {get;set;}
}
तब मैं, आधार स्थान के लिए एक आंशिक बनाया था, इसलिए जैसे:
यहाँ मैं क्या हासिल करना कोशिश कर रहा हूँ की एक सरलीकृत संस्करण है,
@model BaseLocation
***ASP.NET MVC Helpers here: labels, text, validation, etc.
अंत में ग्राहक में और कर्मचारी पृष्ठ, मैं आंशिक कॉल करता हूं और इसे उप-वर्गीकृत प्रकार भेजता हूं।
Customer.cshtml
@model CustomerLocation
@Html.Render("_BaseLocation", Model)
Employee.cshtml
@model EmployeeLocation
@Html.Render("_BaseLocation", Model)
परिणाम यह है कि मुझे विशिष्ट प्रकार के लिए डेटा विशेषताओं को नहीं दिखाई देगा। तो उदाहरण के लिए, ग्राहक पृष्ठ में, मुझे "ग्राहक पता" के बजाय "पता" का एक लेबल मिलेगा।
मैं प्रत्येक विशिष्ट प्रकार के लिए एक ही डेटा के साथ दो आंशिक नहीं बनाएगा, क्योंकि साझा दृश्य मॉडल में एक संपत्ति के पास एक अलग लेबल और त्रुटि संदेश होना चाहिए। इस बारे में जाने का सबसे अच्छा तरीका क्या है? धन्यवाद।
आधार सार बनाने का प्रयास करें, देखें कि यह कुछ भी बदलता है या नहीं। – gdoron
@gdoron, यह कुछ भी नहीं बदलेगा। –
@DarinDimitrov, तो एकमात्र तरीका जिसके बारे में मैं सोच सकता हूं वह अपना 'एचटीएमएलहेल्पर' लिख रहा है जो सही काम करता है। – gdoron