我正在开发房地产管理信息系统。我有这个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个默认值?谢谢您的帮助。
最佳答案
将“块”属性类型从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是可为null的int,因此在访问它并对该方法调用任何方法之前,最好先进行null检查。
[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
}
关于c# - ViewModel返回默认值0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34757172/