2013-08-15 10 views
6

Ho problemi a visualizzare il riepilogo di convalida, voglio solo visualizzare gli errori nel riepilogo di convalida, non accanto al campo. A mio avviso ho,Errori di riepilogo di convalida di Mvc 4 non visualizzati

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

nel mio controller ho

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

Non sono io suppone per ottenere un messaggio di errore di convalida? in cima? Non capisco che cosa manco ...

Sono anche inclusi i presenti file di script .. jquery.validate.min.js jquery.validate.unobtrusive.min.js

+1

Vedere questa domanda http://stackoverflow.com/questions/2818219/asp- net-mvc-html-validationsummarytrue-does-display-model-errors – xurca

+0

Ho provato questa soluzione prima di aver postato questo problema zione. Non so cosa mi manca –

+0

Hmm, non penso che siano in conflitto, ma non è necessario '@ Html.ValidationMessageFor (m => m.Name)' se si desidera solo il sommario. – asymptoticFault

risposta

26

Prova

@Html.ValidationSummary(false) 

in modo che non escluda errori di proprietà.

O

provare il metodo @xurca collegato che è quello di aggiungere l'errore modello con una chiave vuoto in modo che non è legata a una proprietà specifica.

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

Ho provato questo, non funziona ancora. Non so cosa mi manca .. –

+1

Sto lavorando a due progetti contemporaneamente, VS '12 e VS '13. In ogni caso, non ho riscontrato problemi nel '13 con il modello predefinito, ma impostando TRUE su FALSE l'ho risolto nel progetto '12 (come per il tuo post). In ogni caso, grazie per il post. –

2

Se personalizzata denominata vostro campo come

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

allora è necessario utilizzare

@Html.ValidationMessage("staffSearchFilterName") 
0

Se il @ Html.ValidationSummary() chiamata è in una vista parziale, DON' T passare i dati nella vista parziale in questo modo:

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

Invece, aggiungere la coppia valore chiave per collezione Html.ViewData primo:

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

quindi richiamate la vista parziale:

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

ciò consentirà la ModelState di propagare la vista parziale correttamente.

-1

In errore personalizzata del controller

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

Sommario:

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

campo individuale:

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