2014-06-06 10 views
11

Posso fare questo non è di una classe?MVC: Posso utilizzare ModelState all'interno della classe dal controller?

... 
    using System.Web.Mvc; 
    ... 

    public static class aaa 
    { 

     public static test() { 

     if (something) ModelState.AddModelError("", "test"); 
     } 

    } 

all'interno chiamata controllore:

...

public class mycontroler { 

    public void Index() { 
      .... 
      aaa.test(); 
      .... 
    } 

} 

è possibile? Voglio controllare il codice all'interno di una classe in un'altra parte del controller.

risposta

15

È possibile passare il vostro modello di stato in giro in questo modo:

public static void test(ModelStateDictionary ModelState) 
{ 
    if (something) ModelState.AddModelError("", "test"); 
} 

E non chiamate da dentro il controller:

aaa.test(ModelState); 
+0

sì, ma è fuori dal dizionario o ref, e il compilatore non lo consente, giusto? – David

+0

@David Scusa, non capisco cosa stai dicendo? – DavidG

+0

scusate, ho fatto quello che avete detto ma devo passare il parametro come riferimento perché cambierà dentro, o come parametro out, facendo ciò, il compilatore mi dà un errore non permettere di mettere ref o out nel parametro in quel oggetto – David

1

No, non è possibile. Quello che stai facendo riferimento all'interno del Controller è la sua proprietà, non una classe. Puoi ancora passarlo al metodo chiamato come argomento.

+1

ho aggiunto l'errore all'interno della stringa e verrà visualizzato il messaggio di controllore, dopo se il messaggio è vuoto nessun errore altrimenti aggiungerò usando AddModelError all'interno del controller. – David

Problemi correlati