我用 EF 创建了一个 MVC4 应用程序,我有两个简单的类,Brand 和 CarModel,Brand 有一个名称(必需)和 CarModel 有一个 Brand(必需)。问题是我在 ModelState.IsValid 上遇到错误,因为通过下拉菜单选择品牌,它只填写品牌 ID。
我怎样才能在品牌名称中留下所需但能够使用 CarModel 中的下拉菜单?这是我的代码:
public class Brand
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
public string Logo { get; set; }
}
public class CarModel
{
public int Id { get; set; }
[Required]
public string Name{ get; set; }
[Required]
public Brand Brand{ get; set; }
}
我有完整的 Crud for Brand 工作正常。但是我正在尝试为 CarModel 做这件事,这是我在控制器中用于创建品牌的内容:
public ActionResult Create()
{
ViewBag.BrandSelect = new SelectList(myRepository.GetBrands.ToList(), "Id", "Name");
return View();
}
[HttpPost]
public ActionResult Crear(CarModel carModel )
{
if (ModelState.IsValid)
{
myrepository.Create(Modelo);
return RedirectToAction("Index");
}
return View(carModel );
}
并且在视图中
<div class="editor-label">
@Html.LabelFor(model => model.Brand)
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.Brand.Id,ViewBag.BrandSelect as SelectList)
@Html.ValidationMessageFor(model => model.Brand)
</div>