2012-04-18 19 views
1

所以在我的模型,我有:文本框在MVC 3顯示了在應用程序零值開始

public int Number {get; set;} 
在我看來

我打電話:

@Html.TextBoxFor(m => m.Number, new { id = "Number" }) 

當我運行的應用程序存在的TextBox 0值。

我試圖改變模式是這樣的:

public int? Number {get; set;} 

但然後我得到的例外......但是我在我的模型

public decimal? Price {get; set;} 

在我看來:

@Html.TextBoxFor(m => m.Price, new { id = "Price" }) 

當我運行這個文本框是空的,一切都很好。有人會解釋爲什麼在這種情況下int不能是空類型嗎?我得到的例外是Method not found: 'Int32'

的目標不是在文本框,但正常的空文本框

+1

你可以發佈你得到的異常嗎? – 2012-04-18 12:01:22

+0

未找到方法:'Int32 WebUI.Model.SomeModel.get_Price()'。 – TheMentor 2012-04-18 12:35:25

+1

@TheMentor - 什麼是get_Price()?這叫什麼名字?這是從你的模型中調用的嗎?你可以張貼視圖和模型,以便我們可以得到清晰的圖片。 – Dangerous 2012-04-18 12:47:48

回答

0

嘗試添加驗證您的視圖喜歡0值:

@ Html.TextBoxFor(M => m.Price,新{ID = 「價格」}) @ Html.ValidationMessageFor(M => m.Price)

而在你的控制器,你必須verifay如果你的模型狀態的Valide。

If(ModelState.IsValide) 
{ 
// code if all is ok 
} 
else 
{ 
ModelState.AddModelError("", "Error Message"); 
        return View(Model); 
} 
+0

我有jQuery驗證。驗證不是問題。問題是,如果您在模型中具有int屬性,則文本框會顯示defult 0值。用小數點,我用可爲空的類型解決了這個問題。但是,當我嘗試與int相同時,會引發異常。 – TheMentor 2012-04-18 12:32:07