本文介绍了如何在ASP.Net MVC中制作复选框列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个带有复选框列表的表单.用户可以选择所有值,没有值或介于两者之间的任何值.示例:
I have a form with a list of checkboxes. A user can select all values, no values, or any in between. Example:
我想将结果作为逗号分隔的列表写入数据库.在上面的示例中,"Apple,Banana".我有些困惑,如何为此创建模型,以及如何将视图到控制器的结果放入逗号分隔的列表中?
I would like to write the result to the database as a comma separated list. In the example above, "Apple, Banana". I'm a bit confused how to create the model for this and how to get the results from the View to the Controller into a comma separated list?
推荐答案以下是如何执行此操作的示例.
Here's an example of how to do that.
public class HomeModel { public IList<string> SelectedFruits { get; set; } public IList<SelectListItem> AvailableFruits { get; set; } public HomeModel() { SelectedFruits = new List<string>(); AvailableFruits = new List<SelectListItem>(); } }HomeController.cs
public class HomeController : Controller { public ActionResult Index() { var model = new HomeModel { AvailableFruits = GetFruits() }; return View(model); } [HttpPost] public ActionResult Index(HomeModel model) { if (ModelState.IsValid) { var fruits = string.Join(",", model.SelectedFruits); // Save data to database, and redirect to Success page. return RedirectToAction("Success"); } model.AvailableFruits = GetFruits(); return View(model); } public ActionResult Success() { return View(); } private IList<SelectListItem> GetFruits() { return new List<SelectListItem> { new SelectListItem {Text = "Apple", Value = "Apple"}, new SelectListItem {Text = "Pear", Value = "Pear"}, new SelectListItem {Text = "Banana", Value = "Banana"}, new SelectListItem {Text = "Orange", Value = "Orange"}, }; } }Index.cshtml
@model DemoMvc.Models.HomeModel @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> <link rel="stylesheet" href="maxcdn.bootstrapcdn/bootstrap/3.3.6/css/bootstrap.min.css"> </head> <body> <div class="container"> @using (Html.BeginForm("Index", "Home")) { foreach (var item in Model.AvailableFruits) { <div class="checkbox"> <label> <input type="checkbox" name="SelectedFruits" value="@item.Value" @if(Model.SelectedFruits.Contains(item.Value)) { <text> checked </text> } /> @item.Text </label> </div> } <div class="form-group text-center"> <input type="submit" class="btn btn-primary" value="Submit" /> </div> } </div> </body> </html>在发布操作中应该导致以下结果:
Which should result in the following within the Post Action:
更多推荐
如何在ASP.Net MVC中制作复选框列表
发布评论