2013-08-15 6 views
6

Mam problem z wyświetlaniem podsumowania sprawdzania poprawności, chcę wyświetlać tylko błędy w podsumowaniu sprawdzania poprawności, a nie obok pola. Moim zdaniem mam,Błędy podsumowania sprawdzania poprawności Mvc 4 nie wyświetlają się

@Html.ValidationSummary() 
    @Html.ValidationMessageFor(m =>m.Name) 

w moim kontrolera mam

ModelState.AddModelError("Name", 
           "name is required"); 

Czyż nie mam się komunikat o błędzie sprawdzania poprawności? na górze? Nie rozumiem, co mi brakuje ...

jestem w tym również te pliki skryptów .. jquery.validate.min.js jquery.validate.unobtrusive.min.js

+1

zobaczyć to pytanie http://stackoverflow.com/questions/2818219/asp- net-mvc-html-validationsummarytrue-does-not-display-model-errors – xurca

+0

Próbowałem tego rozwiązania, zanim opublikowałem te pytania tację. Nie wiem, czego mi brakuje –

+0

Hmm, nie sądzę, że są w konflikcie, ale nie potrzebujesz '@ Html.ValidationMessageFor (m => m.Name)' jeśli chcesz tylko podsumowanie. – asymptoticFault

Odpowiedz

26

Spróbuj

@Html.ValidationSummary(false) 

, aby nie wykluczać błędów właściwości.

LUB

spróbować metody @xurca który połączony jest dodanie błąd modelu z pustym kluczem więc nie jest przywiązany do konkretnej nieruchomości.

ModelState.AddModelError(String.Empty, "name is required"); 
+0

Próbowałem tego, nie działa bez ruchu. Nie wiem, czego mi brakuje .. –

+1

Pracuję nad dwoma projektami w tym samym czasie, VS '12 i VS '13. W każdym razie nie miałem problemów w '13 przy domyślnym szablonie, ale ustawienie PRAWDA na FAŁSZ rozwiązało to dla mnie w projekcie '12 (jak na twój post). W każdym razie dzięki za post. –

2

Jeśli zwyczaj nazwie danej dziedzinie jak

@Html.TextBoxFor(model => model.Name, new { id = "staffSearchFilterName", value = "", **Name = "staffSearchFilterName"** }) 

następnie trzeba użyć

@Html.ValidationMessage("staffSearchFilterName") 
0

Jeśli @ Html.ValidationSummary() wywołanie jest w częściowym widokiem, DON” T przekazuje dane do częściowego widoku:

@Html.Partial("_YourForm", Model, new ViewDataDictionary { { "Submit", true }}) 

Zamiast dodać parę wartości klucza do pierwszego zbioru Html.ViewData:

@{ 
    Html.ViewData.Add(new KeyValuePair<string,object>("Submit",true)); 
} 

następnie zadzwonić częściowego widoku:

@Html.Partial("_YourForm", Model, Html.ViewData) 

pozwoli ModelState propagować na częściowym widokiem poprawnie.

-1

W niestandardowym błąd kontrolera

ModelState.AddModelError("test","test"); 

Podsumowanie:

@Html.ValidationSummary(false, "", new { @class = "text-danger" }) 

indywidualne pole:

@Html.TextBoxFor(m => m.FieldName, new { @class= "form-control" }) 
    @Html.ValidationMessageFor(m => m.FieldName, "", new { @class = "text-danger" })