2015-03-19 14 views
7

Ho un controller come questo:Asp.net MVC controller per accettare il valore o null

public ActionResult mycontroller(int status, DateTime start, DateTime end) 
{ 
    ...stuff 
} 

E io lo chiamo così:

http://localhost:22200/mycontroller?status=1&start=18/03/2015&end=18/04/2015 

Tuttavia, la metà del tempo ho bisogno di chiamare così:

http://localhost:22200/mycontroller?status=1 

Vorrei utilizzare lo stesso controller per entrambe le chiamate.

C'è modo di cambiare il controller per accettare o meno i parametri?

Ps: Io non voglio avere 2 controller o un URL come questo

http://localhost:22200/mycontroller?status=1&start=null&end=null 

Qualsiasi aiuto là fuori? Grazie mille.

+5

Fai il '' start' e parametri FINE' '' DateTime (Null) –

risposta

8

Effettuare start e end parametri facoltativi/nullable come illustrato di seguito.

ActionResult Action(int status, DateTime? start = null, DateTime? end = null)

I parametri facoltativi permettano l'azione di essere chiamato indipendentemente dal fatto che non vengono specificati gli argomenti start e end stringa di query. Se omesso, verrà utilizzato il valore predefinito null. Così entrambe le seguenti URL sarà valida:

http://localhost:22200/mycontroller?status=1

http://localhost:22200/mycontroller?status=1&start=18/03/2015&end=18/04/2015

+5

Cordiali saluti, il default '? = null' non è necessario. Quello necessario è il parametro nullable 'DateTime?' Invece di 'DateTime' non annullabile. – Fendy

Problemi correlati