2010-11-12 15 views
0

J'ai 2 méthodes d'action:persist données ViewModel de GET à POST

[HttpGet] 
public ActionResult Customize() 
{ 
    return View(new CustomizeViewModel { Thing1 = "test", Thing2 = "test" }); 
} 

[HttpPost] 
public ActionResult Customize(CustomizeViewModel customizeViewModel) 
{ 
    _someService.DoSomething(customizeViewModel); 

    ... 
} 

Mon ViewModel ressemble:

public class CustomizeViewModel 
{ 
    public string Thing1 { get; set; } 
    public string Thing2 { get; set; } 
    public string Thing3 { get; set; } 
} 

À mon avis, j'ai une zone de texte qui recueille une valeur pour Thing3 et affiche simplement les valeurs pour Thing1 et Thing2. Mon problème est, quand je POST et entrez la version POST de la méthode Customize, je reçois seulement une valeur pour Thing3 (celui que j'ai tapé dans la zone de texte.) Yat-il un moyen d'obtenir les valeurs que j'ai peuplées dans la version GET la méthode Personnaliser à reporter? J'ai essayé UpdateModel() mais cela n'a pas fonctionné.

Répondre

1

Ceci est l'une des choses pour lesquelles des champs de saisie masqués ont été créés. Stockez les valeurs dans HiddenFor dans la vue et vous devriez être défini. Les seules données qui viendront pour le tour dans la version HTTP POST sont des éléments d'entrée de formulaire.

1

Ajoutez des champs cachés pour Thing1 et Thing2.