HtmlHelper总结

 

  HTML helper是在视图页面上操作HTML元素时可以调用的方法,还包括URL helper和AJAX helper。这些帮助方法都为了使得操作HTML更加容易。分为两类:a.编辑和输入帮助类b.显示和渲染帮助类。

1实质

   Razor视图继承了基类的HTML属性。HTML属性的类型是HtmlHelper<T>,T代表了传递给视图的模型类型。大多是的辅助方法都是扩展方法。

 

2自动实现HTML编码

    如@Html.TextArea("text", "hello <br/> world") 对应的HTML代码

       <textarea cols="20" id="text" name="text" rows="2">hello &lt;br /&gt; world</textarea>

 

 

3几乎所有的helper方法都可以添加一个控制HTML属性的参数

   参数类型是IDictionary<string,object>,用来创建HTML控件的属性,在需要的情况下可以创建许多的属性。如:@using (Html.BeginForm("Search", "Home", FormMethod.Get, new { target = "_blank" })){}

但是需要注意的是:1)当设置css class=""时 由于class是关键字需要 写作@class=""

                 2)当属性名字中含"-"时,由于c#中命名不能含有"-",所以要写成"_",帮助方法可以自动转换

4 Html.ValidationSummary

    汇总显示ModelState Dictionary中的信息。通过后台可以添加关于实体或者实体属性的错误消息:

        1)ModelState.AddModelError("", "This is all wrong!");         //当有错误产生时(即使是一个属性)就会显示

2)ModelState.AddModelError("Title", "What a terrible name!");    //为属性Title添加错误消息

    与其相似的@Html.ValidationMessageFor(model => model.Nickname) 一般跟在一个需要填写的属性后面。

5强类型Helper

    通过强类型Helper可以传递一个Lambda表达式来指定要呈现的实体属性。表达式的实体类型由View()传递过来,在视图中用@model指令 指定  类型。强类型Helper在原有Helper基础上加了一个"For"后缀。

     强类型Helper的好处:1)有智能提示

                        2)便于重构(在model 中更改了属性名称时,时用了强类型helper的Html可以进行自动更改)

6 Helper和Model Metadata(元数据)

  帮助类不仅仅能够自动探测到ViewData的数据,还可以从元数据获益。如:@Html.Label("GenreId") 与之对应的HTLML代码是: <label     for="GenreId">Genre</label>。Genre元数据的定义:

                                  [DisplayName("Genre")]

                                  public int GenreId { get; set; }    

     可见HTML中的Genre就是从元数据的[DisplayName("Genre")]来的。

7 模板辅助方法

      主要有两个:Html.Display 和 Html.Editor(对应的强类型方法Html.DisplayFor 和 Html.EditorFor)。好处是可以通过数据注解来改变生成的HTML。

    如:当模型的Title属性含[DataType(DataType.MultilineText)]注解时,当使用@Html.EditorFor(m=>m.Title) 时,会自动生成textarea控件。

    还有Html.DisplayForModel 和 Html.EditorForModel也是模板辅助方法。

8.列举大部分的辅助方法

      a.输入编辑类

      TextBox(TextArea)    DropDownList(ListBox—可选择多项)          Label        Hidden        Password    RadioButton      CheckBox

      b.显示和渲染类

      1)ActionLink    RouteLink

      2)URL辅助方法

      @Url.Action(显示URL,不是链接)        @Url.Content(将程序相对路径转换为绝对路径)

      3)Html.Partial和Html.RenderPartial

      4)Html.Action和Html.RenderAction

 

 

 

 

 

posted @   混迹  阅读(5230)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
历史上的今天:
2013-07-02 asp.net网站管理工具 遇到错误。请返回上一页并重试。
点击右上角即可分享
微信分享提示