दिलचस्प पोस्ट
सीकेएडिटेटर के साथ आप एक कस्टम फ़ाइल ब्राउज़र / अपलोडर कैसे एकीकृत कर सकते हैं? प्रारंभिक आकार के बिना संग्रह आकार को सीतनिद्रा में होना कुछ क्षेत्रों के लिए जैक्सन जेसनॉन कस्टम सीरियलाइजेशन क्यों 0.1f से 0 को 10x से नीचे प्रदर्शन धीमा कर देता है? स्विंग में धीरे-धीरे एक छवि को कैसे घुमाएंगे? मैं डीजेंगो में केवल संबंधित वस्तुओं के लिए विदेशी कुंजी विकल्पों को कैसे प्रतिबंधित करूँ? क्या प्रीप्रोसेस और रीडायरेक्ट के अनुरोधों का कोई आसान तरीका है? .hp फ़ाइलों के रूप में चलाने के लिए सभी .html पृष्ठों को बनाने के लिए .htaccess का उपयोग करना? स्क्रीन के सटीक मध्य कैसे प्राप्त करें, फिर भी जब फिर से आकार बदल जाता है रूबी में === बनाम == पायथन में फ्लोट का बाइनरी का प्रतिनिधित्व (बिट्स न हेक्स) सी ++ विरासत और फ़ंक्शन ओवरराइडिंग क्यों KML डेटा का उपयोग कर एंड्रॉइड के लिए Google दिशाएं फिर से काम नहीं कर रही हैं? मैं कैसे जांच सकता हूं कि जावा में दो नंबरों को गुणा करना ओवरफ़्लो का कारण होगा? माईएसक्यूएल – टेबल को अलग टेबल में बदलना

Asp.net mvc 4 में डेटाएनेटेशन मान्यता (नियमित अभिव्यक्ति) – रेज़र दृश्य

डेटाएनेटेशन वैल्यूएन्ट asp.net mvc 4 रेजर व्यू में काम नहीं कर रहा है, जब नियमित अभिव्यक्ति में विशेष वर्ण का उपयोग करते हुए।

आदर्श:

[StringLength(100)] [Display(Description = "First Name")] [RegularExpression("^([a-zA-Z0-9 .&'-]+)$", ErrorMessage = "Invalid First Name")] public string FirstName { get; set; } 

रेज़र व्यू:

 @Html.TextBoxFor(model => Model.FirstName, new { }) @Html.ValidationMessageFor(model => Model.FirstName) 

अविश्वसनीय मान्यता को इस रूप में देखा गया है:

 <input type="text" value="" tabindex="1" style="height:auto;" name="FirstName" maxlength="100" id="FirstName" data-val-regex-pattern="^([a-zA-Z0-9 .&amp;amp;&amp;#39;-]+)$" data-val-regex="Invalid First Name" data-val-length-max="100" data-val-length="The field FirstName must be a string with a maximum length of 100." data-val="true" class="textfield ui-input-text ui-body-d ui-corner-all ui-shadow-inset valid"> 

ऊपर दिए गए html में regex पैटर्न मॉडल के रेगुलर एक्सपशन में निर्दिष्ट के रूप में प्रस्तुत नहीं किया गया है, जो मान्य डेटा ( Sam's ) में प्रवेश करते समय त्रुटि का परिणाम है।

इससे मैं किस तरह निपट सकता हूं?

–अद्यतन करें–

मैंने @ रिक सुझाव के अनुसार कोड अपडेट किया है I

 [StringLength(100)] [Display(Description = "First Name")] [RegularExpression("([a-zA-Z0-9 .&'-]+)", ErrorMessage = "Enter only alphabets and numbers of First Name")] public string FirstName { get; set; } 

देखें स्रोत निम्न दिखाता है:

 <input data-val="true" data-val-length="The field FirstName must be a string with a maximum length of 100." data-val-length-max="100" data-val-regex="Enter only alphabets and numbers of First Name" data-val-regex-pattern="([a-zA-Z0-9 .&amp;amp;&amp;#39;-]+)" id="FirstName" maxlength="100" name="FirstName" type="text" value="" /> 

फिर भी मेरे पास एक ही समस्या है

Solutions Collecting From Web of "Asp.net mvc 4 में डेटाएनेटेशन मान्यता (नियमित अभिव्यक्ति) – रेज़र दृश्य"

9 जुलाई 2012 को अपडेट करें – ऐसा लगता है कि यह RTM में तय हो गया है

  1. हम पहले से ही ^ और $ निर्दिष्ट करते हैं ताकि आपको उन्हें जोड़ने की आवश्यकता न हो। (यह उन्हें शामिल करने के लिए एक समस्या नहीं है, लेकिन आपको उनकी आवश्यकता नहीं है)
  2. यह ASP.NET MVC 4 / Preview / बीटा में एक बग प्रतीत होता है मैंने एक बग खोला है

स्रोत देखें निम्न दिखाता है:

 data-val-regex-pattern="([a-zA-Z0-9 .&amp;&#39;-]+)" <-- MVC 3 data-val-regex-pattern="([a-zA-Z0-9&#32;.&amp;amp;&amp;#39;-]+)" <-- MVC 4/Beta 

ऐसा लगता है कि हम डबल एन्कोडिंग हैं

उन वर्णों से बचने का प्रयास करें:

 [RegularExpression(@"^([a-zA-Z0-9 \.\&\'\-]+)$", ErrorMessage = "Invalid First Name")] 

अभिव्यक्ति की शुरुआत में @ साइन आज़माएं तो आपको बचने वाले वर्णों को टाइप करने की आवश्यकता नहीं है, बस "" में नियमित अभिव्यक्ति चिपकाएं और @ चिह्न डाल दें। इस तरह:

 [RegularExpression(@"([a-zA-Z\d]+[\w\d]*|)[a-zA-Z]+[\w\d.]*", ErrorMessage = "Invalid username")] public string Username { get; set; } 

आप कौन सा ब्राउज़र उपयोग कर रहे हैं? मैंने आपके उदाहरण में प्रवेश किया और IE8 और क्रोम दोनों में कोशिश की और यह वैल्यू वैल्यू किया जब मैंने मूल्य Sam's में टाइप किया

  public class IndexViewModel { [Required(ErrorMessage="Required")] [RegularExpression("^([a-zA-Z0-9 .&'-]+)$", ErrorMessage = "Invalid First Name")] public string Name { get; set; } } 

जब मैं आईओ डेवलपर उपकरण पट्टी और क्रोम डेवलपर मोड का उपयोग कर डोम का निरीक्षण करता हूं तो यह किसी खास वर्णों को नहीं दिखाता है।

हमारे पास अतीत में इसी तरह की समस्या है (जैसा कि टीवेज़ द्वारा वर्णित है) हमारे मामले में हम टेक्स्टबॉक्स के आउटपुट को नियंत्रित कर रहे हैं, हमारे कस्टम एचएलएलएल्पर एक्सटेंशन विधि जो एमवीसीएचटीएमटी स्ट्रिंग का निर्माण कर रही है, वहां एक कदम में हमें इन विविरोधी सत्यापन विशेषताओं को जोड़ने की जरूरत है, जो माध्यम से किया जाता है।

 var attrs = htmlHelper.GetUnobtrusiveValidationAttributes(name, metadata) 

इस विधि को कॉल करने के बाद, एट्रीब्यूट HTML एन्कोडेड होते हैं, इसलिए हम केवल जांच करते हैं कि वहां नियमित अभिव्यक्ति का सत्यापनकर्ता था और यदि हां, तो हम इस गुण को अनएनकोड और फिर टैगइबुल्डर में ("इनपुट" टैग के निर्माण के लिए)

 if(attrs.ContainsKey("data-val-regex")) attrs["data-val-regex"] = ((string)attrs["data-val-regex"]).Replace("&amp;","&"); tagBuilder.MergeAttributes(attrs); 

हम केवल एएमपीएस के बारे में ही ध्यान रखते थे, यही कारण है कि यह शाब्दिक प्रतिस्थापन

उन मानों के लिए एएससीआईआई कोड का उपयोग करने की कोशिश करें:

 ^([a-zA-Z0-9 .\x26\x27-]+)$ 
  • \x26 = &
  • \x27 = '

प्रारूप \xnn जहां nn दो-अंकीय हेक्साडेसिमल वर्ण कोड है। यूनिकोड वर्ण के लिए चार अंकों वाले हेक्स वर्ण कोड को निर्दिष्ट करने के लिए आप \unnnn भी उपयोग कर सकते हैं।

समस्या यह है कि regex पैटर्न एचटीएमएल दो बार एनकोड किया जा रहा है, एक बार जब regex बनाया जा रहा है, और एक बार जब आपके दृश्य में गाया जा रहा है

अभी के लिए, एक Html.Raw में अपने टेक्स्टबॉक्स को लपेटने का प्रयास Html.Raw , ऐसा करें:

 @Html.Raw(Html.TextBoxFor(model => Model.FirstName, new { }))