下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、如鹏网.Net 提高班 mvc 其他课件 Html 辅助方法1、HtmlHelper 简介 mvc 中还提供了一些 HtmlHelper(Html 辅助方法),可以简化表单的编写。现在已经是 Ajax 做页面的了,连 cshtml 都用的越来越少了,特别是用 HtmlHelper 对于美工和程序员分工很不好,所以我不推荐使用。但是总是有公司特别是一些做企业内部系统的公司还在用 HtmlHelper 的,所以还是要了解一下。Html 是 HtmlHelper 类型的成员,可以在 cshtml 中使用。表单:using (Html.BeginForm("Login","
2、;Default")生成:<form action="/Default/Login" method="post"></form>HtmlHelper 的方法有N 多重载方法,根本记不住,随用随查定义就行。2、TextBox Html.TextBox("name") 会生成:<input id="name" name="name" type="text" value="" />还可以赋值: Html.TextBo
3、x("name","hello") 生成:<input id="name" name="name" type="text" value="hello" />3、LabelHtml.Label("UserName", "用户名:")Html.TextBox("UserName")会生成<label for="UserName">用户名:</label><in
4、put id="UserName" name="UserName" type="text" value="" />还有复选框、单选框、TextArea 等玩意,研究一下就行了。4、自定义属性使用 HtmlHelper 之后,怎么搞的属性呢?HtmlHelper 中所有方法都有一个 objecthtmlAttributes 参数,这个参数可以传任意对象进去会把每个属性的名字和值输出到中,为了方便一般传递一个类对象进去( mvc 中讲过):Html.TextBox("name","h
5、ello",new abc=123,haha=false,yes="rupeng")生成:<inputabc="123"haha="False"id="name"name="name"type="text"value="hello"如鹏网.Net 提高班 mvc 其他课件 yes="rupeng" />class 是 C#关键字,不能用作属性名字,怎么办?用class。Html.TextBox("name
6、","hello",new class="warn")生成:<input class="warn" id="name" name="name" type="text" value="hello" />生成v-id=”这样的都会转换为连字符怎么办?-是C#中的特殊字符。用下划线代替所有下划线的属性Html.TextBox("name","hello",new class="warn&qu
7、ot;,v_id=5)转换为:<input class="warn" id="name" name="name" type="text" v-id="5" value="hello" />5、表单验证Html.ValidationSummary()会把提交后表单的验证错误消息汇总显示.cs:public classDisplayName("用户名") Required StringLength(8)public string UserName
8、get; set; DisplayName("Required StringLength(8)")public string Password get; set; Index.cshtml:using (Html.BeginForm("Login","Default")<span>用户名:</span>Html.TextBox("UserName")<span>:</span>Html.Password("Password")<input t
9、ype="submit" value="提交"/> Html.ValidationSummary()DefaultController.cs:public ActionResult Index()return View();public ActionResult Login(m)如鹏网.Net 提高班 mvc 其他课件 if(!MState.IsValid)return View("Index");/一定要返回表单原始页面return Content(m.UserName);如果字段比较多,汇总消息显示不合适,那么就用Html.
10、ValidationMessage("UserName") 值只显示 UserName 属性相关的错误信息。还可以在 Action 中写 MError("UserName", "不知道为啥,感觉有点错State.AddM");添加自定义错误消息,也可以写 M ");搞和属性无关的错误消息。State.AddMError("", "不知道为啥,感觉有点错验证消息的定义了样式名字,需要项目自定义样式文件。6、隐式从 ViewBag 取数据如果在 ViewBag/ViewData 中放数据,那么 Ht
11、mlHelper 可以隐式从 ViewBag 中取数据:ViewBag.UserName = "admin" Html.TextBox("UserName")DropDownList 的数据也可以来自于 ViewBag: Book books = new Book new Book Id=1,Name="如鹏网", new Book Id=2,Name="腾讯", new Book Id=3,Name="天猫"SelectList slBooks = new SelectList(books,&
12、quot;Id","Name",2); ViewBag.books = slBooks;Html.DropDownList("books")不建议用这个特性,只要知道有这东西,避免进坑就行了。7、强类型视图绑定对于强类型视图,可以使用 Html.*For 方法,传递 lambda 表达式,避免编译错误mWebApplication6.Ms.Book<!DOCTYPE html><html><head><meta name="viewport" content="width=
13、device-width" /><title>Index1</title></head><body>如鹏网.Net 提高班 mvc 其他课件 <div>Html.Label("Id"):Html.TextBoxFor(m=>m.Id)<br/> Html.Label("Name"):Html.TextBoxFor(m => m.Name)<br /></div></body></html>8、数据客户端验证使
14、用 asp net mvc 的完整模板。 只要页面中引入 jquery.validate.js 和jquery.validate.unobtrusive.js(在 asp net mvc 模板中有),那么把这两个文件引入页面,然后会自动启用客户端校验,服务器端校验当然还会继续有Index.cshtml 内容:mWebApplication7.Ms.UserMusing (Html.BeginForm("Login","Home")Html.LabelFor(m=>m.UserName,"用户名")Html.TextBoxFor(
15、m=>m.UserName)Html.ValidationMessageFor(m=>m.UserName)<br/>Html.LabelFor(m=>m.Password,"Html.ValidationMessageFor(m => m.Password)<br />")Html.TextBoxFor(m=>m.Password)<input type="submit" value="提交"/>public ActionResult Login(UserMm)if(
16、!MState.IsValid)return View(nameof(Index);return Content(m.UserName);原理:服务器端根据参数的服务器端校验规则在客户端生成这样的验证:data-val="true"data-val-length=" 字段 UserName 必 须 是 最 大 长 度 为 8 的字符串 " data-val-length-max="8"data-val-required="UserName 字段是必需的"。jquery.validate.js 在客户端这些。明白了这
17、个原理,即使不适用 HtmlHelper,咱们也可以在的页面中用 jquery.validate.js。如鹏网.Net 提高班 mvc 其他课件 路由1、 路由的作用:1)分析 url,拆解出 url 中的内容。路由不负责“找 Controller、找 Action”! 2)生成 Url 用;2、默认的路由我们开发项目的时候一般默认的路由就足够了,如果自定义路由通常是不想用默认的 Url默认路由是:。routes.MapRoute(name: "Default",url: "controller/action/id",defaults: new cont
18、roller = "Home", action = "Index", id = UrlParameter.Optional );name 只是一个标志名字而已;url 相当于定义了一个类似于正则表达式的匹配模式:由/分割三部分,第一部分提取成一个名字叫 controller 的数据,第二部分提取成一个名字叫 action 的数据,第三部分提取成一个名字叫 id 的数据;defaults 部分可选,如果指定表示,如果部分内容,那么每个部分的默认值是什么, defaults 一般用类对象, 属性的名字和 url 中定义的名字一致,UrlParameter.O
19、ptional 表示这部分可以不指定。这样当我们请求/Home/Index/5 的时候,就会拆解成 controller=”Home”、action=”Index”、id=5, 然后接下来MVC 引擎会找到HomeController 类的Index 方法去执行,并且给id 参数传递5。controller、action 属于两个特殊的名字,用来对应 controller 类和 action 方法,属于必须的,否则就找不到对应的controller 类和 action 方法,其他名字随意。3、 改动一下默认路由如果我们把 url 改成 url: "id/action/controll
20、er",那么地址就要改成/3/Index/Home 才能正确的。如果我们把 url 改成 url: "aa/rupeng/id/action/controller" , 那么地址就要改成/aa/rupeng/3/Index/Home 才能正确的。注意路由 URL 不能以“/”或“”字符开头,并且不能包含“?”字符,所以路由规则中不能对于querystring 做匹配。为什么 url: "controller/action/id"来讲,/、/Home、/Home/Index 都能到 publicActionResult Index()。因为设定了
21、 defaults,他们都有默认值,如果没有指定,则用默认值来代替。所以 defaults 设定的不像有些人是你设定的匹配值,他只是默认值。新增 Action 方法:public ActionResult Test2(string name,int id)return Content("name="+name+",id="+id);路由规则设置为:url: "controller/action/id/name"然后可以通过/Home/Test2/33/abc如鹏网.Net 提高班 mvc 其他课件 如果我们/Home/Test2/33/abc/asdfa,就会匹配不到任何路由。路由规则不一定用/做分割,比如:url: "controller-action" 就可以用/Home-Index但是路由规则不能让别人无法拆分,比如设置成如下就不行 url: "controlleraction" 4、 多路由规则可以指定多个路由规则,只要 name 不一样就行,当一个请求过来的时候,会从上向下匹配,碰到一个能匹配的就结束了,继续向下走,如果所有规则不匹配的话则报
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度旅行社与旅游住宿业协会合作协议3篇
- 二零二五版创业公司创始股东合作协议及退出机制与股权激励协议3篇
- 二零二五年度股东投资公司短期借款合作协议书2篇
- 2025年度科技园区场地租赁及配套服务协议4篇
- 专用毛竹采购与销售协议范本2024版A版
- 2025年工业厂房智能化改造升级合同范本4篇
- 二零二五年度离婚协议中子女教育资助合同3篇
- 二零二四年农产品电商平台合作框架协议3篇
- 二零二五年标识行业专业人才培养合同3篇
- 2025年度东展厅改造项目政府采购合同细则3篇
- 中金在线测评多少题
- PEP新人教版小学英语单词三到五年级
- 纳米复合材料增强金属基材
- 拆除猪场补偿协议书模板
- 水利水电工程施工安全管理导则
- 5岁幼儿数学练习题
- 2024年高中生物新教材同步选择性必修第三册学习笔记第3章 本章知识网络
- 2024年全国体育单招英语考卷和答案
- 食品安全管理制度可打印【7】
- 药物流行病学教学大纲
- 健康管理师二级理论考核试题及答案
评论
0/150
提交评论