2010-09-10 40 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,int爲0)。如果我檢查Request.Form,值就在那裏,但它們只是沒有進入模型。

我在做什麼錯?

(這是MVC 2,框架4下)

+0

你也應該張貼視圖代碼有可能是有問題(即繼承值)。 – Mayo 2010-09-10 14:37:42

回答

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!我告訴過你這是盒子笨蛋!謝謝,保羅。 – 2010-09-10 14:51:23

+0

哈哈,我很高興我不是唯一一個 - 我不會說我在那個時候掙扎了多久。 – 2010-09-10 14:53:04

+1

這是我想要按10x向上箭頭的位置。我錯過了這個簡單的細節。 – atconway 2012-07-31 15:27:27