如何在模型中设置属性的默认值?

时间:2015-05-26 10:44:19

标签: asp.net-mvc

我有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"),


            };

2 个答案:

答案 0 :(得分:1)

问题在于您实例化模型的方式。

model.Register = new RegisterModel{...}

这将在调用构造函数之前执行{}之间的内容。此外,您无法在大括号内定义新变量,如

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

在控制器中,您需要创建一个新的模型实例,如

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

答案 1 :(得分:1)

你使用system.ComponentModel.DefaultValue属性

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