2013-02-21 40 views
21

मैं वर्तमान में एक पंजीकरण पृष्ठ विकसित कर रहा हूं। जब उपयोगकर्ता पहले से मौजूद है, तो मैं लॉगिन क्षेत्र और ईमेल फ़ील्ड के लिए त्रुटि संदेश में उपयोगकर्ता के लिए पासवर्ड लिंक रीसेट करना चाहता हूं। नियंत्रक में मेरे पास है:मैं एएसपी.नेट एमवीसी में सत्यापन संदेश में एचटीएमएल कैसे प्रस्तुत कर सकता हूं?

[HttpPost] 
public ActionResult Register(RegistrationModel registration) 
{ 
    ... 

    if(userExists) 
    { 
     const string errorMessage = "User already exist. You can <a href="/account/login">login</a> ..."; 
     ModelState.AddModelError("Email", errorMessage); 
     return View("Register", registration); 
    } 
} 

लेकिन जब मैं उत्पादन करने के लिए ध्यान में रखते हुए इस संदेश की कोशिश मुझे लगता है मैं क्या उम्मीद नहीं मिलता है। मुझे सादे पाठ की तरह एचटीएमएल मार्कअप मिलता है। मैं पहले से ही की कोशिश की है:

@using(Html.BeginForm()) 
{ 
<div>@Html.TextBoxFor(m => m.Email)    
@{ 
    @Html.ValidationMessageFor(m => m.Email) 

    ... 

    @Html.Raw(Html.ValidationMessageFor(m => m.Email)) 

    ... 

    string validationMessage = Html.ValidationMessageFor(m => m.Email).ToString(); 
    @Html.Raw(validationMessage) 

    ... 

    string validationMessage = Html.ValidationMessageFor(m => m.Email).ToHtmlString(); 
    @Html.Raw(validationMessage) 

    ... 

    string validationMessage = Html.ValidationMessageFor(m => m.Email).ToString(); 
    @(new HtmlString(validationMessage)) 

    ... 

    string validationMessage = Html.ValidationMessageFor(m => m.Email).ToHtmlString(); 
    @(new HtmlString(validationMessage)) 

    ... 

    string validationMessage = Html.ValidationMessageFor(m => m.Email).ToString(); 
    @(new MvcHtmlString(validationMessage)) 

    ... 

    string validationMessage = Html.ValidationMessageFor(m => m.Email).ToHtmlString(); 
    @(new MvcHtmlString(validationMessage)) 

} 
</div> 
} 
+0

कोशिश '@ (नई HtmlString (mystring))' – jwillmer

+0

@jwillmer, कोशिश की ... Se मेरे संपादन ... एक ही परिणाम ... – Dmytro

उत्तर

45
@Html.Raw(HttpUtility.HtmlDecode(Html.ValidationMessageFor(m => m.Email).ToHtmlString())) 

सुंदर हालांकि

+0

धन्यवाद, यह काम किया ... – Dmytro

+1

कहा जा रहा है, ज्यादातर मामलों में यह संभवतः बेहतर शैली है कि आपका सत्यापन त्रुटि संदेश आपका सत्यापन त्रुटि संदेश हो और उपयोगकर्ता को अतिरिक्त विकल्प प्रदर्शित करने के लिए। – xr280xr

-2

इस पोस्ट पढ़ें के लिए त्रुटियों

How to add validation errors in the validation collection asp.net mvc?

का मूल्यांकन आपके विचार

एचटीएमएल में नहीं है । वैधता संदेश ("ईमेल")

+0

यह प्रश्न का समाधान नहीं करता है। –

0

इस पोस्ट को एएसपी.नेट कोर का उपयोग करके स्वयं को समझने के दौरान मिला।

क्या मैं modelstate.AddError() में मेरी मान्यता संदेश के अपने हिस्से को जोड़ने किया गया था, और अलग से ViewData के लिए थोड़ा कि एचटीएमएल था मैं रेंडर करने के लिए है, इसलिए की तरह चाहता था जोड़ने कर समाप्त हो गया:

ViewData [ " myKey "] =" मेरा एचटीएमएल ";

यह बहुत बदसूरत लगता है और ऐसा करने के शायद बेहतर तरीके हैं, लेकिन मेरी बहुत सीमित जरूरतों के लिए, यह बिल बिलकुल ठीक है।

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

  • कोई संबंधित समस्या नहीं^_^