2009-04-07 22 views
13

Modellerimde girdiyi doğrulamak için ModelState.AddModelError kullanırken garip bir sorun yaşıyorum. Html.ValidationMessage gelen çıktı gerçek bir HTML değeri değil, kodlanmış değer ve böylece CSS stili hata iletisine uygulanmaz.ModelState.AddModelError kodlama HTML

Örnek: Bu daha önceki beta en durumda olmak kullanmadıysanız ve ben burada almaya ne yaklaşım emin değilim

<span class="field-validation-error">&lt;span class=&quot;negative&quot;&gt;URL is Required&lt;/span&gt;&lt;br class=&quot;hid&quot; /&gt;</span> 

: olarak çıkış gösterilmektedir

private string errorMessage = "<span class=\"negative\">{0}</span><br class=\"hid\" />"; 
ModelState.AddModelError("title", String.Format(errorMessage, "Tab title is required")); 

.

Teşekkür Nick

cevap

12

kendi uzantısı oluşturmak zorunda kalmadan da bunu yapmak için başka bir yolu yoktur.

Say mesela bizim denetleyicileri birinde şu var:

ModelState.AddModelError("Name", "<b>Please Use a Valid Person Name</b>"); 

Daha sonra yapabiliriz aşağıdaki bizim görünümünde:

@if(Html.ValidationMessageFor(x => x.Name) != null){ 
    @Html.Raw(Html.ValidationMessageFor(x => x.Name).ToString()) 
} 

'<b>Please Use a Valid Person Name</b>' hata mesajı gelen önleyecektir kodlanmış.

+1

Bilmiyorum, ama MVC 3. –

+13

@ Html.Raw (HttpUtility.HtmlDecode (Html.ValidationMessageFor (x => x.Name) .ToHtmlString içinde değil teyit edebiliriz)); – George

1

kendi abone yöntemi taklit Html.VallidationMessage ... oluştur? Bir sayfada birden fazla form var sayfalarda hitap etmez MVC doğrulama şeyler (ModelState, ValidationMessage vs vs) inşa çünkü

Benzer bir şey yapmak zorunda kaldı.

+0

haklısın - ben yanlış öğeyi güncelledi almıştı. İkisi de html'nin kodlanmasıyla ilgiliydi - sadece yanlış olanı güncelledim. Güncellemeyi kaldırdım. Fark ettiğin için teşekkürler.) (Bu bir süre çalışmıştır eğer – IEnumerator