2012-02-08 11 views
22

È possibile che si verifichino situazioni in cui è necessario restituire un risultato di richiesta non valido.Returning Empty ActionResult

Ad esempio, c'è una chiamata all'azione di controller del sito MVC 3, ma il parametro richiesto manca in una richiesta uri.

Cosa restituisco in risposta. So che posso fare questo:

Response.StatusCode = (int)HttpStatusCode.BadRequest; 
return Content(string.Empty); 

È questo il modo corretto per la situazione sopra descritta?

+13

Per riferimento futuro, c'è un tipo di 'EmptyResult'. – scottm

+0

'return new EmptyResult();' riguardo al commento di @ scottm. –

risposta

32

La soluzione funzionerà OK, ma il modo più chiaro sarà utilizzando HttpStatusCodeResult classe, come questo:

return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 
+4

Non è necessario trasmettere il codice di stato a un int. Basta restituire il nuovo HttpStatusCodeResult (HttpStatusCode.BadRequest); – JMS10

+9

Questa soluzione non è equivalente per il codice dell'autore. Per impostazione predefinita, HttpStatusCodeResult fa sì che IIS restituisca la pagina di errore HTML predefinita con la descrizione dell'errore, ma non il contenuto vuoto. – dlxeon