2011-03-17 22 views
5

मेरे पास एक फॉर्म में एक टेक्स्टबॉक्स है जिसमें मैं कुछ सत्यापन जोड़ना चाहता हूं।मॉडल के बिना मैन्युअल रूप से टेक्स्टबॉक्स में सत्यापन जोड़ें

मैं मॉडल का उपयोग किए बिना इसमें कुछ अविभाज्य सत्यापन गुण कैसे जोड़ सकता हूं?

उदाहरण के लिए।

@using (Html.BeginForm()) 
    { 
     @Html.ValidationSummary() 
     @Html.Label("code", "Confirmation Code") 
     @Html.TextBox("code")<!-- I want validation on this thing --> 
     <input type="submit" value="Go" /> 
    } 

मैं इसे required कैसे कर सकते हैं, और इस तरह stringlength, आदि के रूप में दूसरों

उत्तर

1

हो सकता है कि बहुत देर हो चुकी है, लेकिन मैं सिर्फ एक समाधान नहीं मिला।

var metaInfo = ViewData.ModelMetadata.Properties.First(data => data.PropertyName == "[Property name]"); 

Dictionary<string, object> attributes = new Dictionary<string, object>(); 

var validators = metaInfo.GetValidators(ViewContext.Controller.ControllerContext); 
if(validators.Count() > 0) 
{ 
    attributes.Add("data-val", "true"); 
    foreach (var validator in validators) 
    { 
     foreach(var rule in validator.GetClientValidationRules()) 
     { 
      attributes.Add(string.Format("data-val-{0}", rule.ValidationType), rule.ErrorMessage); 
      foreach(var param in rule.ValidationParameters) 
      { 
       attributes.Add(string.Format("data-val-{0}-{1}", rule.ValidationType, param.Key), param.Value); 
      } 
     } 
    } 
} 
+0

यह कोड कहां जाता है? –

2

HtmlHelpers HTML तत्वों है कि एक data-* विशेषता होती है कि सभी डेटा है कि विनीत जावास्क्रिप्ट ग्राहक प्रदर्शन करने के लिए उपयोग करता है को शामिल प्रदान करेगा मान्यता।

मुझे data-* एचटीएमएल विशेषताओं को दस्तावेज करने वाले किसी भी संसाधन से अवगत नहीं है, इसलिए मैं आवश्यक डेटा एनोटेशन के साथ सजाए गए एक सरल अस्थायी मॉडल को बनाने और प्रस्तुत एचटीएमएल देखने का सुझाव दूंगा।

एक बार जब आप आवश्यक HTML विशेषताओं को जानते हैं तो आप उन्हें सीधे अपने HTML में प्रस्तुत कर सकते हैं।

अद्यतन

यह Brad Wilson पोस्ट में मदद मिल सकती

1

ब्रैड विल्सन और इस के आसपास अपने ही खुदाई में से कुछ के डेविड के लिंक के आधार पर समाधान

<input id="MyInput" name="MyInput" data-val="true" data-val-required="The Error Message"></input> 
<span class="field-validation-error" data-valmsg-for="MyInput" data-valmsg-replace="true"></span> 

इनपुट requries data-val="true" सक्षम होने के लिए है।

फिर आप आवश्यकताएं जोड़ते हैं। आप जो चाहते हैं उसे सीखने के लिए एमवीसी में सामान्य हेल्पर का उपयोग कर वैधकर्ताओं का निरीक्षण कर सकते हैं।

उदाहरण के लिए:

data-val-required="Message for requires" 

data-val-length-min="5" 
data-val-length="The message for min length 5" 

और वह unobtrusively अपने प्रपत्र को मान्य होगा। (जब तक आपको jquery.unobtrisive.validate मिला और सामान्य नहीं मिला)

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