357 messaggi dal 10 giugno 2003
Ciao a tutti,

innanzitutto scusatemi, sono un novizio nella programmazione con
il pattern MVC quindi perdonatemi se sto per fare una domanda stupida;
dunque il mio problema è il seguente:
ho una tabella contenente una serie di ID numerici e per ogni
riga c'è una casella a discesa ( dropdownbox )riempita con i valori
delle località;
ora l'utente può selezionare per ogni riga ( ID_Item ) una destinazione;
alla fine della tabella ho inserito un pulsante submit con il quale
posto tutta la tabella nell'action del controller come FormCollection
quindi tramite Frm.GetValues( "nomeDropDownBox" )recupero
i valori selezionati per ogni riga; ( l'option value della casella
l'ho costruito nel ViewModel facendo "ID_Item | ID_Destinazione";
quindi con il valore della select ho anche l'ID_ITEM.
Il problema nasce se voglio inserire un pulsante Invia per ogni riga
a fianco della casella a discesa; mi servirebbe recuperare
sia l'ID_Item della riga sia la selezione fatta nella casella.
Avevo pensato ad usare un ActionLink ma poi come recupero il valore selezionato nella casella?

spero di essermi spiegato :-)
grazie in anticipo,
alex
alexbj wrote:
Avevo pensato ad usare un ActionLink ma poi come recupero il valore selezionato nella casella?

fai semplicemente un link ad una action ad hoc, che accetta un parametro di tipo stringa/intero (a seconda del tipo del tuo ID). a quel punto è il model binder di MVC a fare il resto
qualcosa tipo:

/Products/Favorite/15

che si traduce in un metodo più o meno come il seguente:
public ActionResult Favorite(string id)
{
// TODO
return View();
}
.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
357 messaggi dal 10 giugno 2003
Ciao Daniele,

scusa ma non ho capito;
se faccio come dici il link viene comunque creato statico;
quando seleziono un valore nuovo nella casella a discesa il link come lo aggiorno?

il link dovrebbe essere : /MiaAction/ID_ITEM/ID_SELEZIONE/;

come faccio ad aggiornare il link in modo che rifletta il cambiamento
del valore della casella a discesa?

ciao,
ale
alexbj wrote:
il link dovrebbe essere : /MiaAction/ID_ITEM/ID_SELEZIONE/; come faccio ad aggiornare il link in modo che rifletta il cambiamento del valore della casella a discesa?

usando Javascript? con jquery è un attimo:
http://api.jquery.com/change/
.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
357 messaggi dal 10 giugno 2003
Ciao Daniele,

grazie per la risposta ma chiedevo se c'era un modo senza usare JS;
abituato con le WebForm nel RepeaterItemCommand potevo risalire
la riga selezionata, trovare la casella a discesa e vedere il valore
selezionato;
quindi mi chiedevo se anche con il MVC si potesse fare una cosa del genere.

ancora grazie mille per la risposta!

ciao,
ale
alexbj wrote:
quindi mi chiedevo se anche con il MVC si potesse fare una cosa del genere. ancora grazie mille per la risposta!

come ti ho già scritto, il sistema più rapido è un link che punti ad una action ad hoc. MVC rispetto a WebForm ha il vantaggio che usi di più l'HTML/HTTP. ma devi anche conoscere come funzionano...
.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.