• 记录学习MVC过程,HTML铺助类(二)


    1.HTML铺助实现链接(如果不是aspx是mvc <%:%>改成@即可)

      第一种:<a href="/User/Index">链接到User/Index</a><br />//当路由规则(App_Start文件夹下的RouteConfig)发生变化时(比如/变成-)这种方法就失效了
      第二种:<a href="<%:Url.Action("Index","User") %>">链接</a><br />跳转到User控制器下的Index方法
      第三种:<%:Html.ActionLink("链接不带参","Index","User",new {name="itcast"}) %><br />
            <%:Html.ActionLink("链接不带参","Index","User") %><br/>
    

      

    2.HTML铺助方法实现一个下拉框

      public ActionResult HtmlHelper()
            {
                ViewBag.city = new List<SelectListItem>()
                {
                    new SelectListItem(){Selected =true,Text = "北京",Value = "1"},
                    new SelectListItem(){Selected =false,Text = "上海",Value = "2"},
                    new SelectListItem(){Selected =false,Text = "广州",Value = "3"}
                };
                ViewBag.demo = "你好";
                return View();
            }
    

      前台页面

    <div>
           <%:Html.DropDownList("city") %> //HTML铺助方法会自动帮你把名字相同的进行匹配,比如city和ViewBag.City
    //ViewBage.name是ViewData["name"]的一个动态封装器 <%:Html.TextBox("demo") %><br /> 男<%:Html.RadioButton("gender","1",false) %> 女<%:Html.RadioButton("gender","0",true) %> </div>

     3.重写自己的HTML铺助方法

    定义一个类,myhtmlhelper,扩展htmlhelper方法 静态类,静态方法,this关键字

    public static class myhtmlhelper
        {
            public static string myLabel(this HtmlHelper helper, string txt)
            {
                //要被编码化<span>属于html标签被编码了,就不死html标签是一个txt了
                return string.Format("<span>{0}</span>",txt);
            }
            public static HtmlString myhtmlstringLabel(this HtmlHelper helper, string txt)
            {
                //不被编码化
                return new HtmlString(string.Format("<span>{0}</span>", txt));
            }
        }
    

      

    <%:Html.myhtmlstringLabel("我的扩展方法") %>//调用的时候会发现需要引用System.Web.Mvc
    

     

    namespace System.Web.Mvc/*命名空间改成引用的命名空间,前台页面就无需引用了*/
    {
        /// <summary>
        /// 扩展htmlhelper方法
        /// </summary>
        public static class myhtmlhelper
        {
            public static string myLabel(this HtmlHelper helper, string txt)
            {
                //要被编码化
                return string.Format("<span>{0}</span>",txt);
            }
            public static HtmlString myhtmlstringLabel(this HtmlHelper helper, string txt)
            {
                //不被编码化
                return new HtmlString(string.Format("<span>{0}</span>", txt));
            }
        }
    }
    

     4......................继续学习中,发现MVC和webform其实有很多相似处

     

    你将独自前行,你会遇到友好,也会遇到恶意,不管你多么善良,因为世间就是这样,不好,不坏.
  • 相关阅读:
    java1.8 ConcurrentHashMap 详细理解
    java 常见高级开发面试题 非算法等特定岗 一
    java.util.concurrent各组件分析 一 sun.misc.Unsafe
    分布式锁 并发 自旋 优化 二
    分布式锁 并发 自旋 优化
    TreeMap 原理
    java8 LinkedHashMap 原理
    SpringBoot启动zipkin-server报错Error creating bean with name ‘armeriaServer’ defined in class path resource
    spring cloud启动zipkin,报错maven依赖jar包冲突 Class path contains multiple SLF4J bindings
    springboot2.0 management.security.enabled无效
  • 原文地址:https://www.cnblogs.com/jsdvkm/p/4574692.html
Copyright © 2020-2023  润新知