2011-02-04 16 views
19

Ho una vista che mostra alcuni dati dal modello. Ho pulsante di invio che l'evento onClick dovrebbe modificare il valore del modello e passare i modelli con valori diversi, ma i miei valori in TextBoxFor rimangono gli stessi di come erano sul caricamento della pagina. Come posso cambiarli?MVC - modifica del valore del modello in vista sul post

+0

Senza alcun codice sorgente è impossibile dare risposte – Tx3

risposta

39

Ecco come funzionano gli helper HTML e in base alla progettazione. Verranno innanzitutto visualizzati nei dati POST e successivamente nel modello. Così, per esempio, se si dispone di:

<% using (Html.BeginForm()) { %> 
    <%= Html.TextBoxFor(x => x.Name) %> 
    <input type="submit" value="OK" /> 
<% } %> 

che stai postando le seguenti azioni:

[HttpPost] 
public ActionResult Index(SomeModel model) 
{ 
    model.Name = "some new name"; 
    return View(model); 
} 

quando la vista viene nuovamente visualizzato il valore vecchio verranno utilizzati. Una possibile soluzione consiste nel rimuovere il valore dal ModelState:

[HttpPost] 
public ActionResult Index(SomeModel model) 
{ 
    ModelState.Remove("Name"); 
    model.Name = "some new name"; 
    return View(model); 
} 
+0

provato in uno scenario molto simile .. non sembra funzionare. Qualsiasi aiuto sarà apprezzato qui - http://stackoverflow.com/questions/12138552/trying-to-update-the-model-in-controller-to-avoid-validation –

+1

Oltre alla risposta di Darin, questo funziona esattamente allo stesso modo con MVC4 e Rasoio. – Bern

+4

Questo mi ha aiutato molto, grazie! Alla persona che ha chiuso questa domanda: è necessario sapere cosa viene chiesto qui prima di esprimere un giudizio sul fatto che questa domanda valga qualcosa o no !! – Kizz

Problemi correlati