Sto lavorando con MVC in .net 4.0. Ho un Html.ActionLink di base e desidero passare più parametri al controller/azione.Come passare più parametri (alcuni oggetti complessi) con Html.ActionLink
Ogni volta che eseguo il debug di ActionResult, viene eseguito solo uno dei miei parametri e l'altro è nullo (a seconda di quale è il primo). Ora so che posso passare oggetti complessi perché riesco a far passare l'oggetto "League". Tuttavia, non sono sicuro del motivo per cui solo uno dei miei parametri lo supera in qualsiasi momento.
Codice in Vista: (non molestare me su ViewBag io so che non è popolare anche, League è un oggetto complesso..)
@Html.ActionLink("Sort By WeeK", "Sort", "Schedule",
new { league = ViewBag.League, sortType = "Week" }, null)
Codice in Controller: (nessuna sorpresa qui)
public ActionResult Sort(League league, string sortType)
{
//Do some stuff here
return View("Schedule");
}
Immagino che la risposta ruoterà attorno al routing. Il che mi porta alla mia seconda domanda. Come posso ottenere questo tipo di ActionLink (Azione/Controller/Collezione di oggetti complessi e semplici) per lavorare senza aggiungere costantemente nuovi maproutes. È possibile aggiungere una RouteMap generica/con caratteri jolly in modo da non dover aggiungere costantemente mappe di percorso identiche a global.asax. O forse voglio un po 'di flessibilità nel tipo di oggetti che desidero passare in un'azione, quindi non posso predefinire la firma esatta.
Ho visto più post su questo argomento ma nessuno di loro ha risposto alle mie domande.
strano. Prova FormCollection nell'azione del tuo controller e controlla se restituisce più chiavi. Il caso peggiore senario è possibile trasformarlo in un modulo e inviare l'HTML nascosto. – Ammar
Quando dici "Quale è il primo", intendi prima nella firma del metodo o prima nell'URL del link? Come appare l'URL generato? –