如何在ASP.Net MVC中制作复选框列表

编程入门 行业动态 更新时间:2024-10-26 14:35:47
本文介绍了如何在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中制作复选框列表

本文发布于:2023-10-12 01:34:22,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1483385.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:复选框   如何在   列表   Net   ASP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!