我正在研究房地产管理信息系统。我有这个ViewModel:
public class UnitViewModel
{
public IEnumerable<HouseModel> HouseModels { get; set; }
public int SelectedModelID { get; set; }
public int Block { get; set; }
public int FromLot { get; set; }
public int ToLot { get; set; }
public double LotArea { get; set; }
public double FloorArea { get; set; }
public IEnumerable<Site> Sites { get; set; }
public int SelectedSiteID { get; set; }
public double Price { get; set; }
}
我在这个控制器中使用它:
public ActionResult Create()
{
UnitViewModel unitVM = new UnitViewModel();
unitVM.HouseModels = db.HouseModels.ToList();
unitVM.Sites = db.Sites.ToList();
return View(unitVM);
}
然而,当我运行应用程序时,它会给我这个输出。
有没有办法删除这些默认值?谢谢你的帮助。
答案 0 :(得分:4)
将Block属性类型从Int
更改为 Nullable int
public class UnitViewModel
{
public IEnumerable<HouseModel> HouseModels { get; set; }
public int SelectedModelID { get; set; }
public int? Block { get; set; }
// Other properties goes here
}
由于Block是一个可以为空的int,因此在访问它并调用任何方法之前进行空检查总是一个好主意。
[Httppost]
public ActionResult Create(UnitViewModel model)
{
if(model.Block!=null)
{
int blockValue= model.Block.Value;
// do something now
}
// to do : Do something and return something
}
您可以在此可空属性上使用数据注释进行验证。
public class UnitViewModel
{
[Required]
public int? Block { get; set; }
// Other properties goes here
}