2013-02-05 13 views
16

Ho bisogno di impostare una stringa di query in una vista utilizzando MVC e Razor.@ Html.ActionLink come aggiungere una stringa di query

Ecco il mio codice

Controller: Home 
ActionResult: Daily 
QueryString: DateForLookUp 

@Html.ActionLink("Next Day", "Daily", "Home", new { @DateForLookUp = @Model.AddOneDay() }) 

il risultato in questo momento è

http://mysite.com/Home/Daily?lenght=4 

Va

http://mysite.com/Home/Daily?DateForLookUp=01/01/2014 

Quello che sto facendo male qui?

+0

stesso in questo modo: http://stackoverflow.com/questions/14687638/why-is-mvc-actionlink-not-rendering-correctly/14687749# 14687749 –

risposta

22

Il Html.ActionLink ha un sacco di overloads.

E si sta utilizzando il wrong overload che interpreta il nome del controller "Home" come valori del percorso.

Una delle corrette overload/sysntax è:

@Html.ActionLink(
    "Next Day", //linkText 
    "Daily", //actionName 
    "Home", //controllerName 
    new { @DateForLookUp = @Model.AddOneDay() }, //routeValues 
    null //htmlAttributes 
) 
+2

questo ha risolto il problema @ Html.ActionLink ("Giorno successivo", "Giornaliero", nuovo {@DateForLookUp = @ Modello.AddOneDay()}) – GibboK

+0

@GibboK sì, se non è necessario specificare il controller, allora quel sovraccarico può anche funzionare. – nemesv

Problemi correlati