2012-01-31 6 views
8

में टेक्स्टबॉक्स के लिए प्लेसहोल्डर एटीआर के लिए डेटा एनोटेशन प्रदान करें क्या एमवीसी व्यू में टेक्स्टबॉक्स पर placeholder एटीआर में क्या होना चाहिए इसके लिए डेटा एनोटेशन करने का कोई तरीका है?एमवीसी

उदाहरण:

मेरी ViewModel.cs में, कुछ की तरह:

[Placeholder="First name"] 
public string FirstName { get; set; } 

मेरी नजर में:

@this.Html.TextBoxFor(m => m.FirstName) 

कि इस प्रस्तुत करना सकता है:

<input type="text" placeholder="First name" ... /> 

क्या यह संभव है? धन्यवाद!

उत्तर

10

कोशिश

@this.Html.TextBoxFor(m => m.FirstName, new{placeholder="First name"}) 

आह, मॉडल में नहीं।

आप अपने स्वयं के custome विशेषता http://blogs.msdn.com/b/aspnetue/archive/2010/02/24/attributes-and-asp-net-mvc.aspx परिभाषित कर सकते हैं। मुझे लगता है कि एचटीएमएल उत्पन्न करने के लिए आपको एक कस्टम एचटीएमएल सहायक की आवश्यकता होगी।

+1

यह बहुत अच्छा है! क्या आप जानते हैं कि मुझे किस विशेषता का उत्तराधिकारी होना चाहिए? आपके लिंक में उदाहरण 'एक्शनफिल्टरएट्रिब्यूट' –

+0

से प्राप्त होता है उदाहरण में विशेषता वर्गों की एक सूची है, जो आप करना चाहते हैं उसके करीब है। या सिस्टम से विरासत का उपयोग करें। एक स्वच्छ (एआर) शुरू करने के लिए एट्रिब्यूट। – PhilW

0

मुझे ऐसा नहीं लगता है, लेकिन आप अपना खुद का कस्टम सहायक लिख सकते हैं और ऐसा करने के लिए विशेषता दे सकते हैं। http://www.aspnetwiki.com/page:creating-custom-html-helpers

+0

लिंक के लिए धन्यवाद! दुर्भाग्य से, मुझे कोई भी उदाहरण नहीं दिखाई देता है जहां मेरे पास मेरे दृश्य मॉडल में संपत्ति के ऊपर '[प्लेसहोल्डर =" पहला नाम "]' हो सकता है। इसके बजाए, 'this.Html.TextboxFor (m => m.FirstName, "प्लेसहोल्डर टेक्स्ट")' के लिए उदाहरण हैं, जो उद्देश्य को हरा देंगे क्योंकि मैं चाहता हूं कि यह हार्ड-कोडित टेक्स्ट दृश्य मॉडल के साथ हो, न कि अंदर दृश्य –

+0

मुझे पता है, आपको अपने स्वयं के सहायक और विशेषता को रोल करने की आवश्यकता होगी। यहां, बिल्डस्टार्ट के उत्तर से पता चलता है कि उन्होंने एक कस्टम विशेषता कैसे बनाई, http://stackoverflow.com/questions/7418664/access-displayname-attribute-from-the-model-in-mvc-view। आप कस्टम सहायक तब अपनी कस्टम विशेषता पढ़ सकते हैं। –