2011-09-05 11 views
7

मैं अपने DateTime संपादक टेम्पलेट में [Required] विशेषता जोड़ना चाहता हूं ताकि मैं उचित सत्यापन योजनाएं या DataType.Date विशेषता जोड़ सकूं ताकि मुझे पता चले कि मुझे केवल तारीखों को प्रदर्शित करना चाहिए। लेकिन मैं यह नहीं समझ सकता कि मेटाडेटा कैसे प्राप्त करें जो कहता है कि संपादक टेम्पलेट ने कौन सा गुण दिया है।संपादक टेम्पलेट्स/डिस्प्ले टेम्पलेट्स उन्हें निर्दिष्ट किए गए किसी भी विशेषता को कैसे पहचान सकते हैं?

उत्तर

15

बिल्ट-इन विशेषताओं, जैसे कि [Required] मेटाडेटा पर अलग-अलग गुणों को असाइन करें (ब्लॉग पोस्ट देखें जो मैंने अधिक जानने के लिए मेरे उत्तर के अंत में लिंक किया है)। उदाहरण के लिए:

public class MyViewModel 
{ 
    [Required] 
    public string Foo { get; set; } 
} 

आवंटित होगा:

@{ 
    var isRequired = ViewData.ModelMetadata.IsRequired; 
} 

इसी संपादक/प्रदर्शन टेम्पलेट में।

और अगर आप एक कस्टम विशेषता थी:

public class MyCustomStuffAttribute : Attribute, IMetadataAware 
{ 
    public void OnMetadataCreated(ModelMetadata metadata) 
    { 
     metadata.AdditionalValues["customStuff"] = "some very custom stuff"; 
    } 
} 

और एक दृश्य मॉडल यह साथ सजाया:

@{ 
    var myCustomStuff = ViewData.ModelMetadata.AdditionalValues["customStuff"]; 
} 
: इसी संपादक/प्रदर्शन टेम्पलेट में

public class MyViewModel 
{ 
    [MyCustomStuff] 
    public string Foo { get; set; } 
} 

आप इस लाने सकता है

इसके अलावा आपको ब्रैड विल्सन के series of blog posts को पूरी तरह से पढ़ना चाहिए मॉडलमैटाडाटा और एएसपी.नेट एमवीसी में टेम्पलेट्स और इसका उपयोग कैसे करें।

संबंधित मुद्दे