0

我想制作一个网页来存储用户最喜欢的水果。

这是我的模型:

public class user
{
    public long UserId {get; set;}
    public string UserName {get;set;}
}

public class userFruit
{
    public long UserFruitId {get; set;}
    public long UserId {get;set;}
    public long FruitId {get;set;}
}

public class Fruit
{
    public long FruitId {get;set;}
    public string FruitName {get;set;}
}

我已经在UseruserFruit之间创建了一个链接,因此一个 User 对象包含一个 UserFruit 列表。

在控制器中,我将向视图传递两件事:
- 模型:用户模型
- ViewBag:水果

在视图中,我想以 CheckBox 格式列出 VierBag.Fruit 中的所有水果,例如
- [ ] Apple
- [ ] Orange
- [ ] Banana
允许用户选择多个水果。

实现 View 以便答案可以自动绑定到 UserFruit 对象的最佳方法是什么?

4

1 回答 1

1

我会亲自制作 aViewModel并拥有 aList<Fruit>而不是使用ViewBag.

public class FruitViewModel
{
    public bool Apple { get; set; }
    public bool Orange { get; set; }
    public bool Banana { get; set; } 
}

public ActionResult ListFruits() 
{
   var model = new FruitViewModel();
   return View("Fruits", model);
}

然后在您看来,您可以使用@Html.CheckBoxFor

@Html.CheckBoxFor(m => m.Apple, new { id = "chkApple" });
@Html.CheckBoxFor(m => m.Orange, new { id = "chkOrange" });
@Html.CheckBoxFor(m => m.Banana, new { id = "chkBanana" });

然后,这些属性将取决于truefalse取决于用户的选择,并在提交表单时发布回服务器。

于 2013-06-25T07:17:36.337 回答