2011-12-23 4 views
5

मैं एक फॉर्म में लगभग 10 इनपुट फिल्में मान्य कर रहा हूं। ValidationMessageFor टैग पेज के शीर्ष पर होना चाहिए, इसलिए मैं की तरह हर एक लिख रहा हूँ:एमवीसी 3 - अंत में एक लाइन ब्रेक <br /> के साथ एक सत्यापन मैसेज कैसे सम्मिलित करें?

@Html.ValidationMessageFor(model => model.Customer.ADDRESS.NAME) 
@Html.ValidationMessageFor(model => model.Customer.ADDRESS.CITY) 

और इतने पर। मेरे मॉडल इस तरह दिखेगा:

[Required(ErrorMessage = Constants.ErrorMsgNameMissing)] 
public string NAME { get; set; } 
[Required(ErrorMessage = Constants.ErrorMsgCityMissing)] 
public string CITY { get; set; } 

स्थिरांक तार कर रहे हैं। अब, यदि एक से अधिक सत्यापन मैसेजफ़ोर दिखाया गया है, तो वे सभी एक पंक्ति में हैं। मैं प्रत्येक संदेश के अंत में <br /> जैसे लाइन ब्रेक कैसे डाल सकता हूं?

यह सही तरीके से नहीं है:

@Html.ValidationMessageFor(model => model.Customer.ADDRESS.NAME)<br /> 
@Html.ValidationMessageFor(model => model.Customer.ADDRESS.CITY)<br /> 

<br /> के बाद से दिखाया गया है भले ही कोई त्रुटि है ...;)

अग्रिम धन्यवाद।

पीएस: उन्हें एक सूची के रूप में प्रदर्शित करना भी बहुत अच्छा होगा।

+0

कोई विशेष कारण है कि '@ Html.ValidationSummary()' पर्याप्त नहीं होगा? –

+0

नहीं ... अरे। यह बहुत आसान था: पी इसे एक उत्तर में लिखें और मैं इसे स्वीकार करूंगा ... ओह आदमी। धन्यवाद! – Sleepwalker

+0

हो गया। सौभाग्य! –

उत्तर

3

मुझे लगता है कि क्या आप वास्तव में के लिए है देख रहे हैं:

@Html.ValidationSummary() 
1

मैं साथ @ Html.ValidationSummary() यदि संभव हो तो

1

बाहर चेक Custom ValidationSummary template Asp.net MVC 3 जाना होगा। मुझे लगता है कि यह आपकी स्थिति के लिए सबसे अच्छा होगा यदि आपके पास पूर्ण नियंत्रण था कि सत्यापन कैसे किया जाता है। आप ValidationMessageFor के लिए आसानी से एक एक्सटेंशन विधि लिख सकते हैं।

1

वास्तव में, शीर्ष पर होना चाहिए:

@Html.ValidationSummary(/*...*/) 

क्षेत्र सत्यापन अपने संबंधित क्षेत्रों के साथ होना चाहिए।

हालांकि, अगर आप पूरी तरह से शीर्ष पर @Html.ValidationMessageFor(/*...*/) डालने पर जोर देते हैं तो अपने सीएसएस में अपने लेआउट व्यवहार को समायोजित और के बारे में भूल <br /> के

1

मुझे यकीन है कि अगर वहाँ एक रास्ता में बनाया नहीं कर रहा हूँ, लेकिन आप कर सकते थे आसानी से एक और एक्सटेंशन विधि बनाएं:

public static MvcHtmlString ValidationMessageLineFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression) { 
    return helper.ValidationMessageFor(expression) + "<br />"; 
} 

ऐसा कुछ?

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