html辅助方法以及常用属性值,Mvc5 表单和HTML辅助方法

①表单的使用

在WebFrom里面你创建一个页面,页面上就会出.

20180318205342354134.png

1,action和method属性

action表示目的,method表示表单传值方式get/post,action默认为当前URL, method默认为:get

20180318205342815089.png

2,enctype   一般需要设置这个属性来允许表单提交多媒体类型

20180318205343204752.png

②HTML辅助方法   如果BeginForm() 表示对当前URL提交Post提交。

20180318205343617854.png

1,自动编码

20180318205343945015.png

20180318205344228229.png

2,HTML辅助方法的工作原理

Html属性的类型是System.Wbb.Mvc.HtmlHelp,除了系统自带的辅助方法,我们还可以自定义辅助方法,如何自定义,我们后面详细在说。

3,添加输入元素

1.Html.TextBox和Html.TextArea

20180318205344614963.png

20180318205344803446.png

20180318205345052479.png

2.Html.Label

20180318205345529060.png

3.Html.DropDownList和Html.ListBox

这两个都是返回元素,DropDownList允许单项选择,ListBox是多项选择。

通常情况下,select元素有两个作用

1,展示可选择的列表

2,展示字段的当前值

下拉列表需要一个包含所有可选项的SelectListItem对象集合,其中每一个SelectListItem对象中又包含有Text、Value和Selected三个属性。

20180318205345748795.png

20180318205345869894.png

20180318205346137482.png

4.Html.ValidationMessage

当ModelState字典中的某一特定字段出错时,可以使用 ValidationMessage辅助方法来显示相应的错误提示消息。

20180318205346588671.png

20180318205346778132.png

5.辅助方法、模型和视图数据

匹配数据

使用ViewBag中的值来为TextBox辅助方法命名

20180318205346875792.png

20180318205346962709.png

20180318205347059392.png

对象属性

20180318205347106269.png

20180318205347187327.png

20180318205347532067.png

20180318205347578944.png

强类型:

20180318205347715668.png

20180318205347908058.png

20180318205347969584.png

20180318205348046735.png

如果我们想避免上面的自动查找数据,我们可以提供一个显示的值。

20180318205348117050.png

20180318205348189319.png

20180318205348435422.png

6.强类型辅助方法

强类型我们可以传一个lambda表达式来显示,我们的辅助方法都多个 “For”

20180318205348519409.png

20180318205348775279.png

20180318205349096580.png

7.辅助方法和模型元数据       数据注解来改变显示

20180318205349373934.png

20180318205349614178.png

20180318205349676680.png

8.模板辅助方法

20180318205350099548.png

20180318205350695274.png

20180318205350978488.png

一般使用Editor代替TextBox

9.辅助方法和ModelState

ModelState存储模型绑定期间检测到的所有验证错误,以及用户提交用来跟新模型的原始值。

辅助方法使用名称表达式作为键,在ModelState字典中进行查找。如果查找的值已在ModelState中,辅助方法就用ModelState中的值替换视图数据中的当前值。,模型绑定失败就会显示错误。

10.其他输入辅助方法

20180318205351203106.png

20180318205351483390.png

20180318205351909188.png

11.渲染辅助方法

Html.ActionLink()和Html.RouteLink()

20180318205352182636.png

20180318205352286156.png

12.URL辅助方法

①Action  ②Content   ③RouteUrl

20180318205352341822.png

13.部分视图辅助方法

使用部分视图有以下优点:   1. 可以简写代码。 2. 页面代码更加清晰、更好维护。

在视图里有多种方法可以 加载部分视图,包括: Partial() 、RenderPartial() 、 Action() 、RenderAction() 、 RenderPage() 方法

partial 与 RenderPartial 方法

Razor 语法: @Html.Partial() 与 @{Html.RenderPartial();}

区别:Partial 可以直接输出内容,它内部是 将 html 内容转换为 string 字符(MVCHtmlString),然后缓存起来,最后在一次性输出到页面。显然,这个转换的过程,会降低效率,所以通常使用 RenderPartial 代替。    指示抓取页面类容,不能抓方法

20180318205352436552.png

20180318205352700234.png

在Partial的Action中传递一些数据,并在Partial的部分视图中调用。

20180318205352836958.png

20180318205352960010.png

在Index视图中加载Partial视图。下面两种方式都可以加载成功,但第二种效率更高,所以我们使用Html.RenderPartial加载视图

20180318205353091851.png

20180318205353210996.png

运行以后页面内容加载过来了,但并没有加载到Action内部的ViewBag变量。

20180318205353445380.png

RenderAction 与 Action

Razor 语法:

@{Html.RenderAction();[email protected]();

区别:Action 也是直接输出,和 Partial 一样,也存在一个转换的过程。不如 RenderAction 直接输出到当前 HttpContext 的效率高。

除此之外,Action与Partial相比,Action访问了控制器中的Action,执行了Action内部的业务。

20180318205353667068.png

运行之后,ViewBag对象中的值也获取到了

20180318205353748126.png

RenderPage 与 RenderPartial

Razor 语法:

@{Html.RenderPartial();}  与 @RenderPage()

区别:也可以使用 RenderPage 来呈现部分,但它不能使用 原来视图的 Model 和 ViewData ,只能通过参数来传递。而 RenderPartial 可以使用原来视图的 Model 和 ViewData。

添加代码并运行,@RenderPage也并没有执行Action。

20180318205353904382.png

20180318205354013761.png

14.Encode与Raw

Html.Encode用于编码页面上的特殊字符。 (不会弹对话框,进行了编码)

标准写法:

简单写法: (主)

Html.Raw将字符串按原样输出在页面上。(会在页面上弹对话框)

标准写法:

简单写法:   (主)

会对字符串进行编码

把字符串完整的输出在页面上,不编码

除了自带的这些赋值方法,我们也可以自定义,这个后面介绍。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值