Domanda

sto passando in qualche informazioni del modello ad un ActionLink, ma mi piacerebbe anche a fornire l'azione con i valori di alcuni input sulla pagina. Per esempio, se ho avuto qualcosa di simile:

<input Name="MyInput" />

<%: Html.ActionLink("MyAction", "MyController", Model.Value);

Mi piacerebbe l'azione di essere a conoscenza di entrambi Model.Value (che è passato in via parametro), e il valore della myInput. Normalmente avrei usato un FormCollection, ma non posso in questo caso dal momento che non sto facendo un invio.

Così come posso passare il valore di myInput a myAction? Avrei dovuto aggiungere una proprietà denominata myInput al mio modello? Supponendo che avrebbe funzionato, c'è un modo più semplice, o almeno uno che non comporta la modifica del modello?

È stato utile?

Soluzione

Non v'è alcun modo per fare questo in HTML, quindi non c'è un modo per fare questo in ASP.NET MVC.

Ci sono due possibili soluzioni a questo che è possibile scegliere tra:

  1. tale uso JavaScript che, quando l'utente modifica la casella di testo si modifica dinamicamente il valore del tag di ancoraggio per includere ciò che digitato. Non è possibile utilizzare ASP.NET di routing per questo, perché che gira sul server e è necessario il codice lato client.

  2. Do una forma presentare invece di un link. Questo è il metodo consigliato in HTML. Quando l'utente sta presentando i dati, dovrebbe essere in una forma. Avvolgere il tutto in un tag form e inserire la casella di testo e un pulsante in là. Impostare l'azione del modulo per essere l'URL che si desidera inviare a.

Questa è la stessa risposta come ho messo in questa domanda , anche se il richiedente dell'altro domanda potrebbe avere avuto un'idea leggermente diversa.

Altri suggerimenti

ho deciso che probabilmente avrei potuto leggere i valori della casella di testo tramite Javascript (probabilmente avrei utilizzato JQuery), e li passati come parametri come parte di un tipo anonimo (invece di utilizzare Model.Value). Tuttavia, ho deciso di passare dall'utilizzo di un collegamento azione per fare solo una forma presentare e utilizzando il FormCollection. E 'appena fatto più senso con la pagina che stavo costruendo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top