asp.net-mvc – 如何将复选框绑定到视图模型的List属性?
发布时间:2020-12-15 20:49:26 所属栏目:asp.Net 来源:网络整理
导读:我一直在阅读视图模型和复选框上的各种帖子,但我的大脑开始锁定,我需要向正确的方向推进一点. 这是我的简化视图模型.我有复选框需要用它们的值填充列表.我不认为这可以自动发生.我不确定如何正确地弥合字符串值数组和List之间的差距.建议? public int Alert
我一直在阅读视图模型和复选框上的各种帖子,但我的大脑开始锁定,我需要向正确的方向推进一点.
这是我的简化视图模型.我有复选框需要用它们的值填充列表.我不认为这可以自动发生.我不确定如何正确地弥合字符串值数组和List之间的差距.建议? public int AlertId { get; set; } public List<int> UserChannelIds { get; set; } public List<int> SharedChannelIds { get; set; } public List<int> SelectedDays { get; set; } 解决方法
让您的View模型像这样表示CheckBox项
public class ChannelViewModel { public string Name { set;get;} public int Id { set;get;} public bool IsSelected { set;get;} } 现在您的主ViewModel将是这样的 public class AlertViewModel { public int AlertId { get; set; } public List<ChannelViewModel> UserChannelIds { get; set; } //Other Properties also her public AlertViewModel() { UserChannelIds=new List<ChannelViewModel>(); } } 现在,在您的GET操作中,您将填充ViewModel的值并将其发送到视图. public ActionResult AddAlert() { var vm = new ChannelViewModel(); //The below code is hardcoded for demo. you mat replace with DB data. vm.UserChannelIds.Add(new ChannelViewModel{ Name = "Test1",Id=1}); vm.UserChannelIds.Add(new ChannelViewModel{ Name = "Test2",Id=2 }); return View(vm); } 现在让我们创建一个EditorTemplate.转到Views / YourControllerName和Crete一个名为“EditorTemplates”的文件夹,并在那里创建一个与属性名称相同的新视图(ChannelViewModel.cshtml) 在新的编辑器模板中添加此代码. @model ChannelViewModel <p> <b>@Model.Name</b> : @Html.CheckBoxFor(x => x.IsSelected) <br /> @Html.HiddenFor(x=>x.Id) </p> 现在,在主视图中,使用EditorFor Html Helper方法调用编辑器模板. @model AlertViewModel <h2>AddTag</h2> @using (Html.BeginForm()) { <div> @Html.LabelFor(m => m.AlertId) @Html.TextBoxFor(m => m.AlertId) </div> <div> @Html.EditorFor(m=>m.UserChannelIds) </div> <input type="submit" value="Submit" /> } 现在,当您发布表单时,您的模型将具有UserChannelIds集合,其中选定的复选框将具有IsSelected属性的True值. [HttpPost] public ActionResult AddAlert(AlertViewModel model) { if(ModelState.IsValid) { //Check for model.UserChannelIds collection and Each items // IsSelected property value. //Save and Redirect(PRG pattern) } return View(model); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 流程模型minFreeThreads澄清
- asp-classic – 经典的asp / asp.net网站 – global.asa无效
- asp.net-mvc – DropDownListFor在编辑视图上不重复的项目(
- asp.net-mvc – ASP.NET MVC将属性“data-message”添加到H
- asp.net-core – 在VS 2015 RC中,编译保存不适用于ASP.NET
- asp.net url分页类代码
- asp.net-mvc – @helper和Url.Action
- asp.net – HttpWebRequestError:服务器提交协议冲突. Sec
- 在Azure网络应用程序中显示ASP.NET 5错误页面
- asp.net-mvc – 如何在OWIN OAuth .NET中获取UserID
推荐文章
站长推荐
- ASP.NET Core 处理 404 Not Found
- asp.net-mvc – 在哪里可以找到与asp.net MVC一起
- asp.net-mvc – 如何显示图像从路径在asp.net mv
- 如何在asp.net中更改javascript警告框的标题?
- asp.net-mvc-3 – 无法在HttpStatusCodeResult中
- asp.net-mvc – ASP.NET MVC 5中的级联下拉列表
- asp.net-mvc – 构建与数据格式分离的ASP.NET MV
- asp.net-mvc – MVC导航到不同的控制器视图
- .net – 使用basicHttpBinding时使HTTPS工作
- asp.net-mvc – HTTP错误500.19 – 内部服务器错
热点阅读