Ho una pagina Web che utilizza un filtro dell'intervallo di date, l'intervallo di date selezionato viene passato al controller quando l'utente fa clic sul link di azione 'filtro' e il controller restituisce ' indice 'visualizza con i dati del modello filtrato.Passare le date dalla vista al controller mvc/C#
View
@Html.ActionLink("Filter", "FilterDateRange", new { from = Url.Encode(Model.FromDate.ToString()), to = Url.Encode(Model.ToDate.ToString()) }, null)
controller
public ActionResult FilterDateRange(string from, string to)
{
var fromDate = DateTime.Parse(HttpUtility.UrlDecode(from));
var toDate = DateTime.Parse(HttpUtility.UrlDecode(to));
//do stuffs
return View("Index", statsPages);
}
La mia domanda è: esiste un modo più elegante per fare questo? Attualmente il valore della data viene codificato url nella vista e quindi url decodificato nel controller, preferisco che il metodo all'interno del controller prenda i parametri di data e ora piuttosto che le stringhe, sembra un po 'hacky così com'è.
Grazie.
Sì, questo funziona grazie. Immaginavo che non si potesse passare indietro la data grezza in quanto avrebbe corrotto l'URL, ma sembra che il raccoglitore di modelli lo gestisca come hai detto. – RobJohnson