最后一天,我在剃须刀视图中看到了这一点
@Html.DropDownListFor(x => x.FoodId,null, htmlAttributes: new { @class = "form-control" })
// and (just another alternative)
@Html.DropDownList("FoodId", null, htmlAttributes: new { @class = "form-control" })
我想知道列表中的数据是什么,数据填充何时何地发生?这两条线有什么区别?以及下拉列表如何填充数据(因为代码执行中有数据)
抱歉我的英文不好更新#1
型号: Food.cs和User.cs
public partial class Food
{
public Food()
{
this.User = new HashSet<User>();
}
public System.Guid Id { get; set; }
public string Name { get; set; }
public virtual ICollection<User> User { get; set; }
}
//
public partial class User
{
public System.Guid Id { get; set; }
public string Name { get; set; }
public Nullable<System.Guid> FoodId { get; set; }
public virtual Food Food { get; set; }
}
控制器(仅限操作)
public ActionResult Create()
{
ViewBag.FoodId = new SelectList(db.FoodSet, "Id", "Name");
return View();
}
感谢我现在愚蠢:))
回答:充满 ViewBag.FoodId
答案 0 :(得分:3)
当将null
值传递给第二个参数时,它会自动,即使没有javascript并且已清除缓存也会在ViewBag
中查找与下拉列表相同的名称,否则启动异常。
就我而言,null
已通过,它检查了ViewBag
并找到了一个密钥