C#MVC是构造带有复选框选项的视图并将答案自动绑定到对象的正确方法
本文关键字:答案 绑定 方法 对象 视图 选项 复选框 C#MVC | 更新日期: 2023-09-27 18:19:43
我想制作一个网页来存储用户最喜欢的水果。
这是我的型号:
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;}
}
我在User和userFruit之间创建了一个链接,这样一个用户对象就包含了一个userFruit列表。
在控制器中,我将向视图传递两件事:
-模型:用户模型
-ViewBag:水果
在视图中,我想列出VierBag中的所有水果。水果采用复选框格式,例如。
-[nbsp;]Apple
-[nbsp; ]橙色
-[nbsp;nbsp;]香蕉
允许用户选择多个水果。
实现View以使答案能够自动绑定到UserFruit对象的最佳方式是什么?
我会亲自制作ViewModel
并拥有List<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" });
根据用户的选择,这些属性将是true
或false
,并在提交表单时发布回服务器。