并且由于我更新到核心2.2,所以我遇到了以下问题:
当我要编辑模型而不是拥有父类时,请选择属性 在建筑物(塔楼)中,我将带有父级(塔楼)信息的属性对象传递到编辑视图(剃刀),因此当用户单击保存并将数据传递给控制器时,我可以显示塔楼信息,但塔对象带有空/空值,如下图所示
这打破了表单的ModelState.IsValid,此启动发生在我将核心2.0升级到2.2之后,然后塔对象为null,没有任何问题。请帮助
这是我的实体
public class Property
{
public string Name { get; set; }
public string Floor { get; set; }
public string Description { get; set; }
public int? Rooms { get; set; }
public int? Baths { get; set; }
public double? Size { get; set; }
public bool isRent { get; set; }
public double? Portion { get; set; }
public string OwnerName { get; set; }
public string Building { get; set; }
public string OwnerPhone { get; set; }
public string OwnerEmail { get; set; }
public virtual User User { get; set; } = null;
public int UserID { get; set; }
public virtual Tower Tower { get; set; } = null;
public int TowerID { get; set; }
}
这里是我的控制器方法
[BreadCrumb(Title = "Editar",Order = 1)]
public async Task<IactionResult> Edit(int id)
{
var property = _propertyBL.GetById(id,User);
if (property == null)
{
return View("~/Views/Home/NotFound.cshtml");
}
PopulateDropDowns(property.UserID,property.TowerID);
return View(property);
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IactionResult> Edit(Property value)
{
if (ModelState.IsValid)
{
_propertyBL.Update(value);
return RedirectToaction(nameof(Index));
}
value.Tower = _towerBL.GetById(value.TowerID);
value.User = _userBL.GetById(value.TowerID);
PopulateDropDowns(value.UserID,value.TowerID);
return View(value);
}
注意:在编辑中,所有包含的都是调用,并且视图显示数据,当数据发送回控制器时,数据将丢失