一、HtmlHepler

1.ActionLink()

动态生成 超链接:根据路由规则,生成对应的 html 代码。

//1.注册路由信息

routes.MapRoute(

name: "Default",

url: "{controller}_aa/{action}.html/{id}",

defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

);

//2.在试图上创建 超链接

<a href="/Home/Heaven">回家</a><br />

@Html.ActionLink("回家","heaven", "Home")

//3.在浏览器看到的生成结果

<a href="/Home/Heaven">回家</a><br />

<a href="/Home/heaven">回家</a>

2.BeginForm()

//1.在视图中 创建 表单

@using (Html.BeginForm("add", "home", FormMethod.Post, new { id="form1" }))

{

}

//2.生成的html代码

<form action="/home/add.html" id="form1" method="post">        文章标题:

</form>

补充:

//直接 在视图中 @ 调用有返回值的方法,就已经相当于是将返回值 写入 Response了

@Html.Label("ATitle")

//相当于下面代码

@{

Response.Write(Html.Label("ATitle"));

}

3.Lable()等生成 html 标签方法

注:所有的方法 都默认 去 视图的 Model 属性所储存的对象 中 查找匹配属性

//1.为实体类 添加 特性 DisplayName

public partial class BlogArticle

{

[DisplayName("文章标题")]

public string ATitle { get; set; }

}

//2.在Action方法中,为视图 的 Model 设置值

public ActionResult Add()

{

return View(new Models.BlogArticle() { ATitle="哇哈哈哈~~!" });

}

//3.在视图中,通过 html的帮助方法,生成 html 标签,同时指定,要读取的 属性名

@Html.Label("Atitle")

//4.生成对应的 html标签,并自动读取了 对应属性 的 DisplayName 里的文本。

<label for="Atitle">文章标题</label>

4.强类型的Html标签方法

强类型方法,直接 通过 lambda表达式,去试图的 Model属性对象中 查找对应的属性数据

4.1普通强类型方法(通过不同方法生成不同html标签)

//1.视图上调用方法

@Html.TextBoxFor(a=> a.ATitle)

//2.生成的html代码

<input class="text-box single-line" id="ATitle" name="ATitle" type="text" value="哇哈哈哈~~!"/>

4.2超强强类型方法(通过 属性的 DataType特性生成html标签)

//1.在实体类中 为 AContent 属性设置 DataType特性,指定为 多行文本框

public partial class BlogArticle

{

[DataType(System.ComponentModel.DataAnnotations.DataType.MultilineText)]

public string AContent { get; set; }

}

//2.视图上 自动根据model对象里属性保存的 实体类 属性 的 [DataType] 特性里指定的类型生成对应的html标签

@Html.EditorFor(a=> a.ATitle)

//3.生成html代码

<textarea class="text-box multi-line" id="AContent" name="AContent"></textarea>

.NET MVC HtmlHepler的更多相关文章

  1. 【ASP.NET MVC 回顾】HtmlHepler应用-分页组件

    以前在ASP.NET WebForm开发中会用到许多控件,像DropDownList等.同样ASP.NET MVC中也有类似的控件-HtmlHelper. HtmlHelper和服务器控件相比,Htm ...

  2. MVC学习(四)几种分页的实现(3)

    在这篇MVC学习(四)几种分页的实现(2)博文中,根据URL中传入的两个参数(页码数,首页.上一页.下一页.末页的标记符)来获得对应的分页数据, 只是传入的参数太多,调用起来不太方便(标记符不能够写错 ...

  3. MVC学习八:MVC View提交数据

    学习编程最主要的就是数据交互,MVC中数据交互是怎么样的呢? 1.Controller向View传输数据在http://www.cnblogs.com/WarBlog/p/7127574.html中有 ...

  4. Asp.Net Mvc 使用WebUploader 多图片上传

    来博客园有一个月了,哈哈.在这里学到了很多东西.今天也来试着分享一下学到的东西.希望能和大家做朋友共同进步. 最近由于项目需要上传多张图片,对于我这只菜鸟来说,以前上传图片都是直接拖得控件啊,而且还是 ...

  5. .Net Core MVC 网站开发(Ninesky) 2.4、添加栏目与异步方法

    在2.3中完成依赖注入后,这次主要实现栏目的添加功能.按照前面思路栏目有三种类型,常规栏目即可以添加子栏目也可以选择是否添加内容,内容又可以分文章或其他类型,所以还要添加一个模块功能.这次主要实现栏目 ...

  6. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

    在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...

  7. ASP.NET Core MVC/WebAPi 模型绑定探索

    前言 相信一直关注我的园友都知道,我写的博文都没有特别枯燥理论性的东西,主要是当每开启一门新的技术之旅时,刚开始就直接去看底层实现原理,第一会感觉索然无味,第二也不明白到底为何要这样做,所以只有当你用 ...

  8. ASP.NET Core 中文文档 第四章 MVC(3.8)视图中的依赖注入

    原文:Dependency injection into views 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:孟帅洋(书缘) ASP.NET Core 支持在视图中使用 依赖 ...

  9. 开源:Taurus.MVC 框架

    为什么要创造Taurus.MVC: 记得被上一家公司忽悠去负责公司电商平台的时候,情况是这样的: 项目原版是外包给第三方的,使用:WebForm+NHibernate,代码不堪入目,Bug无限,经常点 ...

随机推荐

  1. [20140829]spinlock导致cpu居高不下

    背景: 出现cpu高于常规的告警 排查: 1.开跟踪,没有发现cup特别高的查询 2.查看内核cpu使用量,看是否是sql server 端引起 3.查看负荷,是否负荷特别高这里使用 batch re ...

  2. truncate表hang住(等待时间较长),出现enq:RO fast object reuse等待事件

    有一个应用truncate表等待了一晚上,一个定时任务,跑了几年了,今天早上来发现昨晚没有执行完成,hang住了,查询发现等待事件 fast object reuse. 10.2.0.4的库 Bug ...

  3. iOS上传App Store报错:this action cannot be completed -22421 解决方案

    最近swift项目升了xcode8,提交版本时,遇到这个: this action cannot be completed -22421 瞬间懵逼,连具体报错原因都没有,只有一个代码 22421,找了 ...

  4. DataTable去除重复行,根据某一字段进行distinct

    网上有很多方法,比如利用视图处理: //去掉重复行 DataView dv = table.DefaultView; table = dv.ToTable(true, new string[] { & ...

  5. SlidingMenu的简单使用

    1.java代码 1.引入slidingmenu的库 * 2.定义activity继承SlidingFragmentActivity * 3.将onCreate方法改为public的 * 4.加载sl ...

  6. shell脚本实现随机筛选

    #!/bin/bash name=(val1 val2 val3 val4 ...) a=$() #以时间产生随机数向39取余得到0~38的值

  7. Java 代码的基本知识(摘)

    (摘自:Java经典入门教程) http://wenku.baidu.com/link?url=IoWI58cD5vzeHN-NL4pN7Gren-RfzydrhjDlETAByC9L-9ANinyL ...

  8. .Net程序员之Python基础教程学习----字典的使用 [Third Day]

      今天学习了字典的使用, 所谓的字典其实就是键值对数据, 一个字典里面有唯一的Key对应一个value,Key是唯一的,Value不唯一. 在.net添加相同的Key会报错,在Python,若出现相 ...

  9. MMORPG大型游戏设计与开发(part1 of net)

    网络模块的设计,是大型多人在线游戏中比较重要的一部分.我之所以将网络模块放到最前面,是因为许许多多的开发者面对这一块的时候充满了疑惑,而且也觉得很神秘和深奥.这些我们面对到的困难,其实是由于我们对这方 ...

  10. NOIP 2008提高组第三题题解by rLq

    啊啊啊啊啊啊今天已经星期三了吗 那么,来一波题解吧 本题地址http://www.luogu.org/problem/show?pid=1006 传纸条 题目描述 小渊和小轩是好朋友也是同班同学,他们 ...