当前位置: 首页 > news >正文

网站开发怎样手机号验证公司logo墙设计图片

网站开发怎样手机号验证,公司logo墙设计图片,网站主页模板图片,C 如何做简易网站前言 本节我们来讲讲在ASP.NET Core MVC又为我们提供了哪些方便#xff0c;之前我们探讨过在ASP.NET MVC中下拉框绑定方式#xff0c;这节我们来再来重点看看枚举绑定的方式#xff0c;充分实现你所能想到的场景#xff0c;满满的干货#xff0c;你值得拥有。 探讨枚举绑…前言 本节我们来讲讲在ASP.NET Core MVC又为我们提供了哪些方便之前我们探讨过在ASP.NET MVC中下拉框绑定方式这节我们来再来重点看看枚举绑定的方式充分实现你所能想到的场景满满的干货你值得拥有。 探讨枚举绑定方式 我们首先给出要绑定的枚举类。 public enum Language { JavaScript, Java, C, Python, SQL, Oracle } 枚举绑定方式一Html.DropDownList 接下来我们废话少说直接进入主题。 ViewBag.enums Enum.GetValues(typeof(Language)).CastLanguage(); 视图页面则是得到该ViewBag中的值。 Html.DropDownList(enumList, new SelectList(ViewBag.enums), new { class btn btn-success dropdown-toggle form-control }) 绑定方式二Html.EnumDropDownListFor 此时我们需要借助强类型视图来操作如下控制器代码 [HttpGet] public IActionResult Get() { var test new TestViewModel(); return View(test); } 然后视图代码 Html.EnumDropDownListFor(model model.Language, htmlAttributes: new { class form-control }) 然后你会发现在ASP.NET Core  MVC中没有此方法的实现了具体如下 所以到此我们研究结束此方法应该是被.net core mvc团队已经弃用我们继续往下看。 *枚举绑定方式三Html.GetEnumSelectList 1单独绑定枚举 此时我们去敲Html时出现Razor视图智能提示你会看到如下的方法该方法应该是在ASP.NET MVC5之后和ASP.NET Core MVC中才有并且该方法的参数是一个Type类型 Html.GetEnumSelectList() 那么此时我们的视图代码就演变成了如下所示。 { Layout null; } !DOCTYPE html using WebApplication1.Enums html head meta nameviewport contentwidthdevice-width / titleIndex/title /head body Html.GetEnumSelectList(typeof(Language)) /body /html ohshit返回的是SelectListItem看来没用对最终尝试搞出了下面的方法 { Layout null; } !DOCTYPE html using WebApplication1.Enums html head meta nameviewport contentwidthdevice-width / titleIndex/title /head body select asp-itemsHtml.GetEnumSelectList(typeof(Language))/select /body /html 这才是我们最终想要的我们完全不需要借助强类型视图来实现有专门针对枚举的方法简单粗暴但是要记住千万别再select上加上 asp-for 选项否则会出现如下错误这个没在研究了估计和强类型视图绑定有关 虽然上述是.net core提供给我们最好的方案确实很好但是我们实际要的效果不是这样我们来举一个实际场景比如如下枚举类。 public enum PayStatus { Create, WaitPay, WaitConfirm, Successed, Failed, NoPay } 如上显示的是支付的若干状态当在视图上显示时总不能实现Create,WaitPay,WaitConfirm等吧谁懂呢我们想要的是该枚举的描述信息结果就演变成了如下这样。 public enum PayStatus { [Display(Name 新建)] Create, [Display(Name 等待支付)] WaitPay, [Display(Name 等待支付确认)] WaitConfirm, [Display(Name 支付成功)] Successed, [Display(Name 支付失败)] Failed, [Display(Name 无需支付)] NoPay } 此时我们依然借助上述方法来实现如下只是修改一下枚举类型即可。 select asp-itemsHtml.GetEnumSelectList(typeof(PayStatus))/select .net core mvc还是强大的很啦这样还能解析出来上述我们是通过直接绑定枚举来实现要是通过强类型视图呢我们来看下 2强类型视图绑定枚举 public class TestViewModel{ public PayStatus PayStatus { get; set; }} 该方法有两个重载如下一个用来单独绑定枚举一个用来绑定强类型视图上的枚举类型 // // 摘要: //     Returns a select list for the given enumType. // // 参数: //   enumType: //     System.Type to generate a select list for. // // 返回结果: //     An System.Collections.Generic.IEnumerable1 containing the select list for the //     given enumType. // // 异常: //   T:System.ArgumentException: //     Thrown if enumType is not an System.Enum or if it has a System.FlagsAttribute. IEnumerableSelectListItem GetEnumSelectList(Type enumType); // // 摘要: //     Returns a select list for the given TEnum. // // 类型参数: //   TEnum: //     Type to generate a select list for. // // 返回结果: //     An System.Collections.Generic.IEnumerable1 containing the select list for the //     given TEnum. // // 异常: //   T:System.ArgumentException: //     Thrown if TEnum is not an System.Enum or if it has a System.FlagsAttribute. IEnumerableSelectListItem GetEnumSelectListTEnum() where TEnum : struct; 按 CtrlC 复制代码 上述居然还报错了还是一意孤行最终也没错误啊如下郁闷。 当然我们也可以在此基础上在视图上追加一个默认选项如下 select asp-itemsHtml.GetEnumSelectListPayStatus()option---no specified----/option/select 当添加中文时你会惊讶结果乱码了这难道是bug么。 select asp-itemsHtml.GetEnumSelectListPayStatus()option---请选择----/option/select 不知是何缘故求解决这个问题bug我觉得不是。。。。 枚举绑定方式四TagHelper  上述第三种方案其实已经够我们用了但是有时候实际情况非我们所想象的那样在我们项目中对枚举类的描述是用的如下包 System.ComponentModel.Primitives 所以此时枚举就变成了如下这样 public enum PayStatus { [Description(新建)] Create, [Description(等待支付)] WaitPay, [Description(等待支付确认)] WaitConfirm, [Description(支付成功)] Successed, [Description(支付失败)] Failed, [Description(无需支付)] NoPay } 当利用DisplayName特性时此时是和视图相结合了的所以Razor引擎能够解析出来但是变成Description特性肯定就不好使如下 接下来我们只能够自定义获取DescriptionAttribute中的值我们通过TagHelper来实现如此对于枚举我们不再有任何限制随心所欲。首选我们需要获取上述特性并取到其值并添加到SelectListItem中形成一个集合代码如下 public ListSelectListItem GetEnumSelectListItem() { var list new ListSelectListItem(); var typeInfo Value.GetType().GetTypeInfo(); var enumValues typeInfo.GetEnumValues(); foreach (var value in enumValues) { MemberInfo memberInfo typeInfo.GetMember(value.ToString()).First(); var descriptionAttribute memberInfo.GetCustomAttributeDescriptionAttribute(); list.Add(new SelectListItem() { Text descriptionAttribute.Description, Value value.ToString() }); } return list; } 接下来我们取出遍历上述集合中的值并添加到Select中最终代码如下 public class EnumsTagHelper : TagHelper { public Enum Value { get; set; } public override void Process(TagHelperContext context, TagHelperOutput output) { var list GetEnumSelectListItem(); output.Content.AppendHtml(select); foreach (var item in list) { if (item.Value ! null) output.Content.AppendHtml($option value{item.Value}{item.Text}/option); else output.Content.AppendHtml($option{item.Text}/option); } output.Content.AppendHtml(select/); } } 最后就是在视图中进行调用了如下 using WebApplication1.Enums addTagHelper *, WebApplication1 html head meta nameviewport  charsetutf-8 / titleIndex/title /head body enums ValuePayStatus.Create/enums /body /html 一切都是那么简单你get了没有。 总结 本节详细介绍了在ASP.NET Core MVC中如何绑定枚举的几种方式枚举要一个好的描述从而显的更有意义若你是利用DisplayName特性那就用内置的吧内部自动会进行解析若是利用Description特性则可以利用上述TagHelper来实现你喜欢哪种用哪种接下来我将继续利用周末时间更新线程系列文章也有可能会包括.NET Core文章关于SQL Server性能优化系列暂时搁置。 原文地址http://www.cnblogs.com/CreateMyself/p/6753794.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注
http://wiki.neutronadmin.com/news/275301/

相关文章:

  • 网站推广费用ihanshi网站建设账户搭建
  • 西安网站建设市场服务器上配置网站
  • intitle:郑州网站建设做新浪微博网站需要
  • 小白网站搭建教程可以推广发广告的app
  • 做手机网站兼容网络推广项目
  • 网站开发生命周期龙之向导外贸专区
  • 太原市城乡建设局网站公司品牌官网建站
  • 领秀网站建设遵义市网站制作
  • 让别人做网站需要提供什么微信公众号程序
  • 济南网站优化排名网站模块是啥
  • 二手交易网站开发的学会网站 建设
  • 建立石墨碳素网站怎么做电子商务网站建设经费
  • 做网站用什么服务器专业建站lhznkj
  • 建网站的哪家好建设家具网站
  • 餐饮网站建设研究问题中国女排联赛排名
  • 深圳做网站网络营销公司哪家好科技公司简介范文
  • 网站店铺的图片怎么做的网站空间的价格
  • 中国制造网网站wordpress多级菜单
  • 兰州市城乡和住房建设局网站重庆网站制作1000
  • 深圳品牌网站建设2345网址导航app官网下载
  • 网站建设与网页制作模拟试题深圳市做网站的企业
  • 做企业规划的网站wordpress删除所有文章
  • 乒乓球网站建设目标小说网站开发对影成三人小说
  • 灵动网站建设免流网站开发
  • 帝国cms网站名称哪个公司网络最好
  • 网站开发兼容局机关网站建设
  • 网站 百度认证查看网站模板
  • 商务网站内容维护和管理的范围网站80端口备案
  • 如何把做的网站与域名连接用易语言做抢购网站软件
  • 嘉兴网站建设服务东莞企业名录大全