2016-02-03 4 views
0

У меня есть вопрос относительно привязки атрибутов в действии контроллера.Привязка новых атрибутов к действию контроллера

Моя модель имеет 3 атрибуты: имя, имя пользователя и e-mail:

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

Если я хочу, чтобы мои Создать действие, чтобы иметь новый атрибут, например, «Вход» Boolean, есть способ связать новый атрибут моей модели, например:

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

Или мне нужно создать ViewModel для этого?

+2

Создайте ViewModel, вот для чего они предназначены! – zgood

+0

По умолчанию все свойства привязаны, поэтому необходимо использовать '[Bind (Include =" .. ")]' (или 'Exclude'), если вы хотите предотвратить привязку некоторых свойств. Но правильный подход заключается в использовании модели представления –

ответ

0

Вы можете создать viewmodel со всеми этими 4 свойствами, как использовать это. Это best way to prevent overposting.

Но если вы не хотите создавать модель представления. вы можете добавить новые параметры в свой метод действий. Имя параметра должно совпадать с вашим соответствующим именем элемента формы.

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