dropdownllist中的null值(for)

时间:2015-05-01 12:59:42

标签: c# asp.net-mvc razor

最后一天,我在剃须刀视图中看到了这一点

@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

1 个答案:

答案 0 :(得分:3)

当将null值传递给第二个参数时,它会自动,即使没有javascript并且已清除缓存也会在ViewBag中查找与下拉列表相同的名称,否则启动异常。 就我而言,null已通过,它检查了ViewBag并找到了一个密钥