博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Asp.net core]封装Layer ui checkbox 为taghelper
阅读量:6033 次
发布时间:2019-06-20

本文共 4419 字,大约阅读时间需要 14 分钟。

摘要

在使用checkbox,为其绑定值的时候,有些麻烦,就想着能不能用taghelper将其封装一下。直接上demo。

一个例子

using Microsoft.AspNetCore.Mvc.Rendering;using Microsoft.AspNetCore.Razor.TagHelpers;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace LayUI.TagHelpersDemo.TagHelpers{    public class CheckBoxTagHelper : TagHelper    {        public List
Items { set; get; } = new List
(); public string Name { set; get; } = Guid.NewGuid().ToString(); public override void Process(TagHelperContext context, TagHelperOutput output) { output.TagName = "checkbox"; if (Items != null && Items.Count > 0) { for (int i = 0; i < Items.Count; i++) { var checkbox = new TagBuilder("input"); checkbox.TagRenderMode = TagRenderMode.SelfClosing; var item = Items[i]; checkbox.Attributes.Add("id", item.Id); checkbox.Attributes.Add("name", Name); if (item.Checked) { checkbox.Attributes.Add("checked", "checked"); } if (item.Disabled) { checkbox.Attributes.Add("disabled", "disabled"); } checkbox.Attributes.Add("type", "checkbox"); checkbox.Attributes.Add("value", item.Value); checkbox.Attributes.Add("title", item.Text); output.Content.AppendHtml(checkbox); } } base.Process(context, output); } }}

CheckBoxItem

using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;namespace LayUI.TagHelpersDemo.TagHelpers{    ///     /// 复选框项    ///     public class CheckBoxItem    {        ///         /// 复选框id        ///         public string Id { set; get; } = Guid.NewGuid().ToString();        ///         /// 复选框值        ///         public string Value { set; get; }        ///         /// 复选框文本内容        ///         public string Text { set; get; }        ///         /// 是否选中        ///         public bool Checked { set; get; }        ///         /// 是否可用        ///         public bool Disabled { set; get; }    }}

在_ViewImports.cshtml引入自定义taghelper

@using LayUI.TagHelpersDemo@using LayUI.TagHelpersDemo.Models@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers@tagHelperPrefix wf:@addTagHelper LayUI.TagHelpersDemo.*,LayUI.TagHelpersDemo

使用

using System;using System.Collections.Generic;using System.Diagnostics;using System.Linq;using System.Threading.Tasks;using Microsoft.AspNetCore.Mvc;using LayUI.TagHelpersDemo.Models;using LayUI.TagHelpersDemo.TagHelpers;namespace LayUI.TagHelpersDemo.Controllers{    public class HomeController : Controller    {        public IActionResult Index()        {            return View();        }        public IActionResult About()        {            ViewData["Message"] = "Your application description page.";            return View();        }        public IActionResult Contact()        {            ViewData["Message"] = "Your contact page.";            return View();        }        public IActionResult Test()        {            List
items = new List
{ new CheckBoxItem{ Id=Guid.NewGuid().ToString(), Value =Guid.NewGuid().ToString(), Text="篮球" }, new CheckBoxItem{ Id=Guid.NewGuid().ToString(), Value=Guid.NewGuid().ToString(), Text="足球" }, new CheckBoxItem{ Id=Guid.NewGuid().ToString(), Value=Guid.NewGuid().ToString(), Text="美女" } }; return View(items); } public string Post() { return Request.Form["interest"]; } public IActionResult Error() { return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); } }}

 

@{    Layout = null;}@model List
Test

测试

提交之后,获取每项ID

f7be9e8d-31a2-4206-a3c3-fc5e391c1629,607849ae-d1fa-4007-9e0d-9faaf10c8f1f

总结

一些常用的控件,可以通过taghelper对其进行封装一下,使用起来更方便。

转载地址:http://gydhx.baihongyu.com/

你可能感兴趣的文章
Spark综合使用及用户行为案例区域内热门商品统计分析实战-Spark商业应用实战...
查看>>
初学者自学前端须知
查看>>
Retrofit 源码剖析-深入
查看>>
企业级负载平衡简介(转)
查看>>
ICCV2017 论文浏览记录
查看>>
科技巨头的交通争夺战
查看>>
当中兴安卓手机遇上农行音频通用K宝 -- 卡在“正在通讯”,一直加载中
查看>>
Shell基础之-正则表达式
查看>>
JavaScript异步之Generator、async、await
查看>>
讲讲吸顶效果与react-sticky
查看>>
c++面向对象的一些问题1 0
查看>>
直播视频流技术名词
查看>>
网易跟贴这么火,背后的某个力量不可忽视
查看>>
企业级java springboot b2bc商城系统开源源码二次开发-hystrix参数详解(八)
查看>>
java B2B2C 多租户电子商城系统- 整合企业架构的技术点
查看>>
IOC —— AOP
查看>>
比特币现金将出新招,推动比特币现金使用
查看>>
数据库的这些性能优化,你做了吗?
查看>>
某大型网站迁移总结(完结)
查看>>
mysql的innodb中事务日志(redo log)ib_logfile
查看>>