2010-09-10 2 views
7

Хорошо, это должно быть что-то глупое, как-ящик-скалы, что я делаю неправильно, но я не могу найти его.MVC Простая привязка модели не работает

MVC Действие:

[AcceptVerbs(HttpVerbs.Post)] 
public virtual ActionResult Create(BatchCreateViewModel createModel) 
{ 
    return RedirectToRoute(MVC.Home.Display()); 
} 

BatchCreateViewModel:

public class BatchCreateViewModel 
{ 
    bool searchAVM; 
    bool searchBPO; 
    bool searchAppraisal; 
    int transactionAge; 
    string Description; 
    string uploadfile; 
} 

Есть элементы управления на странице просмотра под названием "searchAVM", "searchBPO", "searchAppraisal", (флажков) "transactionAge" (набор радиокнопок с целыми значениями) и «описание» (текстовое поле)

Когда я разбиваю запись в «Создать», создается createModel, но имеет все значения по умолчанию (null для строки, false для булевых, 0 для int). Если я исследую Request.Form, значения есть, но они просто не попадают в модель.

Что я делаю неправильно?

(Это под MVC 2 Framework 4.)

+0

Вы должны также разместить код вида, как там может быть проблема есть (т.е. наследуется значение). – Mayo

ответ

19

Ваше мнение модель должна иметь автоматические свойства, а не публичные переменные. Это поймало меня раньше!

Так оно и должно быть:

public class BatchCreateViewModel 
{ 
    public bool searchAVM {get;set;} 
    public bool searchBPO {get;set;} 
    public bool searchAppraisal {get;set;} 
    public int transactionAge {get;set;} 
    public string Description {get;set;} 
    public string uploadfile {get;set;} 
} 
+3

D * mn! Я же говорила, что это была глупость! Спасибо, Пол. –

+0

Ха-ха, просто рад, что я не единственный - я не буду говорить, как долго я боролся с ним в то время. –

+1

Здесь я хочу нажать стрелку вверх, как 10x. Я тоже пропустил эту легкую деталь. – atconway

 Смежные вопросы

  • Нет связанных вопросов^_^