2016-02-03 1 views
0

J'ai une question concernant la liaison d'attributs dans une action du contrôleur.Liaison de nouveaux attributs sur le contrôleur Action

Mon modèle a 3 attributs: Nom, UserName et Email:

public class User { 
    public string Name {get;set;} 
    public string UserName {get;set;} 
    public string Email {get;set;} 
} 

Si je veux que mon Créer une action d'avoir un nouvel attribut, comme un booléen « Connexion », est-il un moyen de lier une nouvel attribut à mon modèle, comme:

public ActionResult Create([Bind(Include = "Name, UserName, Email, Login")] User model) 

Ou dois-je créer un ViewModel pour le faire?

+2

Créez un ViewModel, c'est pour ça! – zgood

+0

Par défaut, toutes les propriétés sont liées, il est donc nécessaire d'utiliser '[Bind (Include =" .. ")]' (ou 'Exclude') si vous voulez empêcher certaines propriétés de se lier. Mais la bonne approche consiste à utiliser un modèle de vue –

Répondre

0

Vous pouvez créer un modèle avec toutes ces propriétés. C'est le best way to prevent overposting. Mais si vous ne souhaitez pas créer un modèle de vue, vous pouvez le faire en cliquant sur le lien suivant:

vous pouvez certainement ajouter de nouveaux paramètres à votre méthode d'action. Le nom du paramètre doit correspondre au nom de l'élément de formulaire correspondant.

public ActionResult Create([Bind(Include = "Name, UserName, Email")] User model,bool Login) 
{ 
    //to do : return something 
}