2015-05-26 91 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; } 
相关问题