2015-05-26 115 views
0

我有RegisterModel,我需要爲SelectCountryID和控制器傳球被重視,但設置的默認值時,我非常喜歡這一點,我得到一個錯誤:「未設置爲一個對象的實例對象引用」如何在模型中設置屬性的默認值?

public class RegisterModel 
{ 
    public RegisterModel() 
    { 
     SelectCountryID=1; 
    } 

    public int SelectCountryID {get;set;} 
} 

控制器:

int test = Model.Register.SelectCountryID; 

編輯:

IndexPageModel model = new IndexPageModel(); 
model.Register = new RegisterModel 
      { 
       int test = model.Register.SelectCountryId, 
       Country = new SelectList(manager.GetCountries(), "Id", "Name"), 
       WebTypeOfLicense = new SelectList(CommonDbService.GetAllLicense(), "Id", "Name"), 
       Region = new SelectList(manager.GetRegions(model.Register.SelectCountryId), "Id", "Name"), 


      }; 
+0

您需要首先實例化對象... – Liam

+0

[C#中的不理解對象實例化]的可能重複(http://stackoverflow.com/questions/888514/not-understandi ng-object-instantiation-in-c-sharp) – Liam

回答

1

的問題是在你實例化模型的方式。

model.Register = new RegisterModel{...} 

這將執行什麼在{}之間調用構造函數之前。此外,您不能在大括號內的類似

{int test = model.Register.SelectCountryId,...} 

定義新的變量在控制器中,你需要創建模型的新實例像

RegisterModel model = new RegisterModel(); 
int test = model.SelectCountryID; 
+0

我創建的新實例不是那個 – None

+0

@無,你能展示更多的代碼嗎?哪條線發生錯誤?在控制器中還是在類中? – AmmarCSE

+0

我在控制器中得到錯誤...你可以看到我的編輯 – None

1

您的使用system.ComponentModel.DefaultValue屬性

[System.ComponentModel.DefaultValue(0)] 
public int SelectCountryID { get; set; } 
相關問題