UrlHelper、HtmlHelper的使用

UrlHelper、HtmlHelper的使用

一、UrlHelper的定义

  •  
  • C# 代码   复制
  • 
        public class UrlHelper
        {        
            //其他成员 
            public UrlHelper(RequestContext requestContext);
            public UrlHelper(RequestContext requestContext, RouteCollection routeCollection); 
            public RequestContext RequestContext { get; }        
            public RouteCollection RouteCollection { get; }
        }
    			

     

  • 二、UrlHelper的使用

    UrlHelper提供了四个非常常用的四个方法

    1.Action方法通过提供Controller,Action和各种参数生成一个URL,

    2.Content方法是将一个虚拟的,相对的路径转换到应用程序的绝对路径,

    3.Encode方法是对URL地址进行加密,与Server.Encode方法一样。

    4.方法是提供在当前应用程序中规定的路由规则中匹配出URL。

    另外还有两个属性,分别是RequestContext和RouteCollection两个属性,分别指的是包含HTTP上下文和RouteData两个属性,另外,RouteCollection是整个当前应用程序中规定的路由规则。

    1.使用Action方法生成URL(Controller将是默认的)

    指定Action名称生成URL

    Url.Action("DemoAction")

    指定Action和一个RouteData(参数)生成URL

    Url.Action("DemoAction","id")

    指定Action名称和多个参数生成URL

    Url.Action("DemoAction", new {id=2,category=5 })

    指定Action和Controller生成URL

    Url.Action("DemoAction","DemoController")

    指定Action,Controller和一个参数生成URL

    Url.Action("DemoAction","DemoController","id")

    指定Action,Controller和多个参数生成URL

    Url.Action("DemoAction","DemoController", new {id=2,category=5 })

    2.使用Content方法将虚拟(相对)路径生成为绝对路径

    Url.Content("~/DemoController/DemoAction")

    3.使用RouteUrl生成URL

  •  
  • C# 代码   复制
  • 
       public class UrlHelper
       {
           //其他成员
           public string RouteUrl(object routeValues);
           public string RouteUrl(string routeName);
           public string RouteUrl(RouteValueDictionary routeValues);
           public string RouteUrl(string routeName, object routeValues);
           public string RouteUrl(string routeName, RouteValueDictionary routeValues);
           public string RouteUrl(string routeName, object routeValues, string protocol);
           public string RouteUrl(string routeName, RouteValueDictionary routeValues, string protocol, string hostName);
       }
    
    		
  • 三、HtmlHelper的定义

  •  
  • C# 代码   复制
  • 
           public class HtmlHelper
           {       
               //其他成员
               public HtmlHelper(ViewContext viewContext, IViewDataContainer viewDataContainer);
               public HtmlHelper(ViewContext viewContext, IViewDataContainer viewDataContainer, RouteCollection routeCollection);                   
                public RouteCollection RouteCollection { get; }
               public ViewContext ViewContext { get; }
           }
           public class ViewContext : ControllerContext
           {        
                //省略成员
     
             }       
           public class ControllerContext
           {
                //其他成员          
                public RequestContext RequestContext { get; set; }
                public virtual RouteData RouteData { get; set; }
           }
           
    
    		
  • 四、HtmlHelper使用

    1.使用HtmlHelper生成超链接
     

    Html.ActionLink("我是超链接","")


    2.使用HtmlHelper生成表单


    Html.BeginForm("Index", "Simple", FormMethod.Post, new { id = "myForm" });

    Html.EndForm();

    3.使用HtmlHelper根据路由规则生成表单


    Html.BeginRouteForm(new { controller = "Simple", action = "Demo" });
    Html.EndForm();

    4.使用HtmlHelper生成一个复选框
     

    Html.CheckBox("checkBox",new { id="myCheckBox" }) 复选框
     

    5.使用HtmlHelper生成隐藏域


    Html.Hidden("hidden")
     

    6.使用HtmlHelper生成密码输入框


    Html.Password("password","longgel")
     

    7.使用HtmlHelper生成单选框


    Html.RadioButton("radio","boy",true) 男
    Html.RadioButton("radio","girl",false) 女

     

    10.使用HtmlHelper生成部分视图(用户控件)


    Html.RenderPartial("PartialView");


    11.使用HtmlHelper根据路由规则生成超链接


    Html.RouteLink("我是由路由生成的超链接",new {controller="Simple",action="Index"})


    12.使用HtmlHelper生成富文本框
     

    Html.TextArea("myTxtArea",new{style="width:300px; height:100px;"})
     

    13.使用HtmlHelper生成文本框
     

    Html.TextBox("myTxtBox","我是文本框")

    另外HtmlHelper中还有ValidationMessage()和 ValidationSummary()等方法,用于验证的时候使用。