Domanda

Sto usando la convalida biblioteca MVC da testo del link . Ho scelto questa libreria perché sto anche utilizzando .NetTiers che genera tutta la convalida attributi utilizzando MS Enterprise Library Blocchi di convalida.

Funziona bene, tranne che quel modello di legame viene convalidare automaticamente l'oggetto e popolando il riepilogo di convalida. Credo che questo comportamento normale.

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Register([Bind()]NetTiersObject obj)
{
    return View();
}

La biblioteca di convalida ha anche un metodo che è documentato nel seguente modo:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Register([Bind()]NetTiersObject obj)
{
    try
    {
        obj.Validate<NetTiersObject>();
    }
    catch (EntityValidationException ex)
    {
        ViewData.ModelState.PopulateWithErrors(ex);
    }
    return View();
}

Questo funziona anche bene.

Il mio problema è che quando si utilizza il metodo della biblioteca di convalida si duplica i messaggi di errore. Quando si utilizza solo il modello vincolante i messaggi di errore strano. Gli errori hanno il nome della proprietà nel messaggio.

Quindi, penso che dovrei sia bisogno di formattare il modello di messaggi di errore o modello disabilitare legame del tutto vincolante.

Qualsiasi raccomandazione, aiuto?

Grazie.

È stato utile?

Soluzione 2

Ho trovato la risposta al perché il mio ModelState non era valido. Gli elementi del modulo non corrispondono al modello, che è l'unico modo in cui il ModelState sarebbe invalida immediatamente.

Se trovo più specifiche vi aggiornerò questo post.

Altri suggerimenti

Hai provare:

    /*At the Point the ModelState should be Valid(TRUE)
      because we still didn't enforce any validations */
    var v = ModelState.IsValid;

try
    {
        obj.Validate<NetTiersObject>();
    }
    catch (EntityValidationException ex)
    {
        ViewData.ModelState.PopulateWithErrors(ex);
    }

E controllare se v è vero, dovrebbe essere. Se è vero, allora obj.Validate<NetTiersObject>(); sta facendo qualcosa di sbagliato, perché il suo l'unico che popolano gli errori duplicati.

  

Il mio problema è che quando si utilizza il   Metodo biblioteca di convalida è   duplica i messaggi di errore. quando   semplicemente utilizzando il modello vincolante l'errore   messaggi appaiono strani. gli errori   avere il nome della proprietà nel messaggio.

Il suo è strano perché il modelBinding non deve compilare errori di modello, almeno se il vostro non si utilizza un modello personalizzato Binding o cercando di salvare nel DB senza campi di convalida.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top