我正在开发房地产管理信息系统。我有这个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);
    }


但是,当我运行该应用程序时,它会为我提供此输出。

c# - ViewModel返回默认值0-LMLPHP

有没有办法删除这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/

10-12 12:39
查看更多