asp.net-mvc-2 – asp.net MVC中的checkboxlist
发布时间:2020-12-16 09:15:15 所属栏目:asp.Net 来源:网络整理
导读:我想在asp.net mvc视图中创建一个checkboxlist,并希望显示工作日(星期一,星期二,……).我想保存用户在数据库中选择的值.我怎么能在MVC2中这样做 有人建议我使用这里提到的“枚举类型为位标志”: http://msdn.microsoft.com/en-us/library/cc138362.aspx 我
我想在asp.net mvc视图中创建一个checkboxlist,并希望显示工作日(星期一,星期二,……).我想保存用户在数据库中选择的值.我怎么能在MVC2中这样做
有人建议我使用这里提到的“枚举类型为位标志”: http://msdn.microsoft.com/en-us/library/cc138362.aspx 我怎么用呢? 请建议解决方案. 解决方法
是的,我还建议在这种情况下使用枚举.
以下是如何在ASP.NET MVC中执行此操作: 你的枚举应该是这样的(参见你提供的链接): [Flags] public enum Days { Sunday = 0x1,Monday = 0x2,Tuesday = 0x4,Wednesday = 0x8,Thursday = 0x10,Friday = 0x20,Saturday = 0x40 } 为了可重用性,我创建了一个通用的html帮助器,如下所示: public static IHtmlString CheckboxListForEnum<T>(this HtmlHelper html,string name,T modelItems) where T : struct { StringBuilder sb = new StringBuilder(); foreach (T item in Enum.GetValues(typeof(T)).Cast<T>()) { TagBuilder builder = new TagBuilder("input"); long targetValue = Convert.ToInt64(item); long flagValue = Convert.ToInt64(modelItems); if ((targetValue & flagValue) == targetValue) builder.MergeAttribute("checked","checked"); builder.MergeAttribute("type","checkbox"); builder.MergeAttribute("value",item.ToString()); builder.MergeAttribute("name",name); builder.InnerHtml = item.ToString(); sb.Append(builder.ToString(TagRenderMode.Normal)); } return new HtmlString(sb.ToString()); } 您可以对所有枚举类型使用相同的html帮助程序. 用法: 现在出于演示目的,假设你有一个这样的模型: 模型: public class TVShow { public string Title { get; set; } public string Description { get; set; } public Days AvailableOn { get; set; } } 控制器动作: public ActionResult Show() { var show = new TVShow { Title = "Late Late Show",AvailableOn = Days.Monday | Days.Friday }; return View(show); } 查看(强类型): <%: Model.Title %> <%: Model.Description %> <%: Html.CheckboxListForEnum<Days>("days",Model.AvailableOn)%> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – ASP.net MVC – 呈现包含不同类型的List,每
- asp.net-mvc – 在ASP.NET MVC 3中授权当前用户对控制器和操
- asp.net-mvc – 如何在Windows Azure网站(asp.net mvc4)上更
- asp.net – CookieContainer和Response.Cookies集合有什么区
- asp.net-mvc – MVVM ViewModel vs. MVC ViewModel
- [你必须知道的.NET] 第七回:品味类型---从通用类型系统开始
- 在ASP.NET中流文件的最佳方式
- asp.net – MembershipUser和IPrincipal对象之间的关系
- asp.net – 如果在MVC 3中没有认证,如何轻松重定向?
- asp.net-mvc – ASP.NET MVC ValidateInput(false)停止使用
推荐文章
站长推荐
热点阅读