2011-06-14 7 views
3

Je suis tout nouveau à .net MVC3 alors pardonnez mon ignorance. J'ai une forme relativement grande (beaucoup de champs) et je me demande si j'ai vraiment besoin de référencer chacun de mes champs comme arguments pour ma méthode d'action sur le backend ou s'il est possible de les passer tous en quelque sorte de collection puis référence la collection pour obtenir les valeurs.transmettre les données de formulaire au contrôleur mvc3

Si cela est possible, quelqu'un pourrait-il donner un court exemple de comment?

grâce

Répondre

4

exemple Shortest je peux trouver ...

Voir modèle:

public class ViewModel 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
} 

Vue:

<%: Html.EditorForModel() %> 

Contrôleur

[HttpGet] 
public ActionResult Person() 
{ 
    return View(new ViewModel()); 
} 
[HttpPost] 
public ActionResult Person(ViewModel formData) 
{ 
    // formData is bound already -- just use it! 
} 
0

Vous pouvez transmettre toutes les données au contrôleur comme un type personnalisé.

public ActionResult MyControllerMethod(MyCustomType formData) 

Si vous tapez fortement votre point de vue, alors vous serez en mesure de rendre les champs de formulaire en utilisant la HtmlHelper tels que:

<%= Html.TextBoxFor(m => m.FirstName) %> 

Ce fut l'ID des champs de formulaire, qui est utilisé pour associer le champ de formulaire à la propriété de modèle, sera déjà défini pour vous.

Questions connexes