2011-06-10 10 views
16

मैं एनोटेशन के साथ एक बुनियादी MVC दृश्य मॉडल है नहीं पहचानता, उदाहरण के लिए:आईआईएस दृश्य मॉडल एनोटेशन

[Required(ErrorMessage="Your Name Required")] 
    [Display(Name = "Your Name")] 
    [DataType(DataType.Text)] 
    [MaxLength(120, ErrorMessage = "Must be under 120 characters")]     
    public String YourName { get; set; } 

मैं एक जोरदार टाइप इस दृश्य मॉडल पर आधारित दृष्टिकोण है। जब मैं आवेदन स्थानीय रूप से चलाने के लिए, निम्नलिखित कोड उत्पन्न करता है "आपका नाम" लेबल:

@Html.LabelFor(model => model.YourName) 

जब अनुप्रयोग .NET 4 अनुप्रयोग पूल के साथ IIS7 पर तैनात किया जाता है, लेबल कहते हैं, "YourName" (स्पेस के बिना)।

यह बहुत तेज है और मैं इससे पहले नहीं आया था। क्या किसी को पता है कि इसका क्या कारण हो सकता है?

कैश साफ़ किया गया है, यह वेब क्लाइंट की एक श्रृंखला से परीक्षण किया गया है और परिणाम वही है।

संपादित करें:

@model MVC.Web.Models.ContactUsModel 

<div> 
    @Html.LabelFor(model => model.YourName) 
    @Html.EditorFor(model => model.YourName)  
</div> 

संपादित 2 कि मैदान पर सभी एनोटेशन पर ध्यान नहीं दिया जा रहा है। अन्य टेक्स्ट प्रकार फ़ील्ड हैं और उनके पास एक ही समस्या है। यह केवल एक लाइव सर्वर पर हो रहा है। लाइव सर्वर आईआईएस 7 है जिसे प्लसस्क 10.2 पर कॉन्फ़िगर किया गया है। आश्चर्य है कि यह एक बग है क्योंकि मैं एमवीसी 3 आरटीएम का उपयोग कर रहा हूं।

संपादित 3 मैं ईमेल संपत्ति है एक ही दृश्य मॉडल के भीतर:

[Required(ErrorMessage = "Your Email Is Required")] 
    [Display(Name = "Your Email")] 
    [RegularExpression(@"^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$", ErrorMessage = "Your Email Is Invalid")] 
    [DataType(DataType.Text)] 
    public String FromEmail { get; set; } 

यह गुण एक दृश्य के भीतर किया जाता है:

<div> 
     @Html.LabelFor(model => model.FromEmail)  
     @Html.EditorFor(model => model.FromEmail)   
    </div> 

लेकिन यह बिल्कुल ठीक :(तो काम करता है ईमेल प्रॉपर्टी लाइव और डेव पर्यावरण दोनों में ठीक काम करती है। अन्य गुण केवल देव पर्यावरण में काम करते हैं।

संपादित करें 4 अधिकतम लम्बाई और न्यूनतम लम्बाई एनोटेशन को हटाने से समस्या ठीक हो गई। हालांकि मैं अपने मॉडल सत्यापन दिनचर्या के हिस्से के रूप में अभी भी अधिकतम लम्बाई और न्यूनतम लम्बाई एनोटेशन का उपयोग करना चाहता हूं।

[MinLength(3, ErrorMessage = "Minimum 3 Characters")] 
[MaxLength(30, ErrorMessage = "Maximum 30 Characters")] 
+1

पहली चीज जो दिमाग में आती है वह है कि आपका निर्माण प्रकाशित नहीं हुआ। समाधान को पुनर्निर्माण करने और सभी दस्तावेजों को बदलने की साइट को पुन: प्रकाशित करने का प्रयास करें। – Jay

+0

हाय जय। मैंने पहले साफ-सुथरा समाधान किया है। पूरी बाइनरी को पूरी तरह से हटा दें और फिर से तैनात करें। समस्या गायब नहीं हुई। –

+0

हां, मैं लेबल टैग देख सकता हूं, हालांकि यह है: <लेबल के लिए = "YourName"> YourName, जो अजीब है। –

उत्तर

1

एमवीसी 3 [स्ट्रिंग लम्बाई] विशेषता का समर्थन करता है, जबकि [मिनलेन्ग] और [अधिकतम लम्बाई] इकाई फ्रेमवर्क के साथ आते हैं। क्या आप मैक्सलेन्थ के बजाय इसे आजमा सकते हैं?

[StringLength(120, ErrorMessage = "Must be under 120 characters")] 
+0

यह समस्या को हल करता है। मुझे अभी भी यह पता लगाना है कि काम करने के लिए ईएफ एनोटेशन कैसे प्राप्त करें। उम्मीद है कि यह सर्वर पर ईएफ एक्सटेंशन या उस तरह का कुछ स्थापित करने का मामला है। धन्यवाद –

0

मैं रेज़र के लिए बहुत नया हूं लेकिन मैंने सोचा कि DisplayTextFor ने आपको एक लेबल नहीं दिया है। @Html.LabelFor() अधिक समझ में नहीं आता है?

+0

क्षमा करें, यह एक टाइपो था। नोटपैड में लिखा है। –

2

आपके उदाहरण में आपके मॉडल पर निम्नलिखित संपत्ति है।

[Required(ErrorMessage="Your Name Required")] 
[Display(Name = "Your Name")] 
[DataType(DataType.Text)] 
[MaxLength(120, ErrorMessage = "Must be under 120 characters")]     
public String YourName { get; set; } 

तो, संपत्ति "YourName" को "आपका नाम" का लेबल मिलना चाहिए।

आपके विचार में, हालांकि, आप YourName प्रॉपर्टी प्रदर्शित नहीं कर रहे हैं।

@Html.LabelFor(model => model.FromName) 
@Html.EditorFor(model => model.FromName) 

तो आपको अपनी FromName संपत्ति में समान विशेषताओं को जोड़ने की आवश्यकता है।

+0

अरे, यह एक टाइपो है, यह अभी भी समस्या को ठीक नहीं करता है। मैं मैन्युअल रूप से कोड टाइप कर रहा था। –

+1

आप वास्तविक कोड की प्रतिलिपि बनाने से बेहतर हो सकते हैं क्योंकि शायद अन्य बिट्स गायब हैं जो इससे भी भिन्न हो सकती हैं। – Fenton

+0

मैंने आपके तैनाती के संबंध में दूसरा जवाब जोड़ा है ... – Fenton

0

मैंने अभी आईआईएस 7 पर .NET 4 ऐप पूल के साथ इसका परीक्षण किया है, बस आपके मामले में और यह मेरे लिए बिल्कुल ठीक काम करता है। क्या आप वर्णन कर सकते हैं कि आप अपनी तैनाती कैसे करते हैं?मैंने डिफॉल्ट प्रोफाइल के साथ विजुअल स्टूडियो 2010 में एक सरल राइट क्लिक> प्रकाशित किया। यह भी जांचने की एक बात यह है कि सर्वर पर स्थापित .NET संस्करण अद्यतित है। यह v4.0.30319 या उससे अधिक होना चाहिए। शायद मैं आपको अपना समाधान ईमेल कर सकता हूं ताकि आप इसे अपने सर्वर पर जांच सकें?

+0

प्रकाशन फ़ाइलज़िला पर किया जाता है। अर्थात। मैं फ़ाइल सिस्टम पर प्रकाशित करता हूं और फिर web.config से सर्वर पर eveything कॉपी करता हूं। कॉपी करने से पहले, मैं सर्वर से सब कुछ हटा देता हूं। –

+0

.NET संस्करण है: 4.0।3031 9 .1 –

0

उत्तर 2 - मेरा पहला जवाब वास्तव में प्रश्न में गलत प्रकार को इंगित करता है, लेकिन आपके द्वारा तैनाती के बारे में दी गई टिप्पणियों के आधार पर, मुझे लगता है कि आपकी समस्या आपके कोड के बजाय आपके तैनाती से संबंधित हो सकती है ।

यदि आप एक्स-कॉपी तैनाती कर रहे हैं, तो सुनिश्चित करें कि आप सभी नवीनतम DLL को बिन निर्देशिका में कॉपी कर रहे हैं। क्या मेरा मतलब है ...

  • करें कि आप अपने समाधान का निर्माण करते हैं, और निर्माण अपने वेब सर्वर के साथ-साथ अन्य फ़ाइलों

कारण के लिए

  • कॉपी नव निर्मित DLLs सफल होता है इसके लिए यह मॉडल इन डीएलएल में संकलित हो जाएगा, इसलिए आपको उन्हें अपने लाइव बिन फ़ोल्डर में अपलोड करने की आवश्यकता है सर्वर पर अपनी विशेषताएं प्राप्त करें।

    यदि आप अपनी मॉडल कोड फ़ाइलों को अपलोड कर रहे हैं, तो वे वास्तव में सर्वर पर उपयोग नहीं किए जाते हैं ... बस बिन, विचार, स्क्रिप्ट और सामग्री फ़ोल्डर्स सामान्य रूप से।

  • +0

    हाय सोहेनी। मॉडल में निर्माण और परिवर्तन ठीक काम कर रहे हैं। मैं हर बार एक ताजा प्रकाशन करता हूं। मुझे लगता है कि समस्या EntityFramework एनोटेशन में है। कृपया मेरा अंतिम संपादन देखें। –

    0

    आपको काम करने के लिए अपनी परियोजना में शामिल MicrosoftMvcValidation.js स्क्रिप्ट की आवश्यकता है। क्या आपने, शायद उन्हें हटा दिया है या उन्हें प्रतिलिपि बनाने के लिए सेट नहीं किया है?

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