MVC札记三 --HtmlHelper mvc htmlhelper 分页

HtmlHelper:是为了方便View的开发而产生

一、HtmlHelper -Action

普通调整首页超级链接为:<ahref="/home/index">首页</a>
当路由改变时候则需要修改,例如:<ahref="/home/index.htm">首页</a>

如果项目里面有很多超级链接,那么就需要改动很多地方,不方便。

如果写成<ahref="@Url.Action("Index","Home")">首页</a>,那么根据路由改变也不受影响。

对比:

@Url.Action("View1","Home")浏览器输出字符串: /Home/View1

@Html.Action("View1","Home")浏览器输出/Home/View1 的页面内容

@Html.ActionLink("第二页","View1","Home")浏览器输出能跳转到/Home/View1的超链接,并显示 第二页

引入Jquery插件时:

<script type="text/javascript"src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")"></script>

二、HtmlHelper - Form

方式一:{} 强烈推荐
@using(Html.BeginForm("HandleForm","Home"))
{
}

方式二:Begin End
@Html.BeginForm()
@{Html.EndForm();}


三、HtmlHelper –弱类型与强类型方法

1.弱类型方法:指定name和value
@Html.TextBox("Title",model.Title);
<inputtype="text" id="Title" name="Title"value="ruiky"/>

@Html.RadioButton("chkHabit","篮球",true)
<inputchecked="checked" id="chkHabit" name="chkHabit" type="radio"value="篮球" />
其他控件方法也一样


2.强类型方法:通过lambda表达式指定么模型属性(@model),强类型方法名有"For"后缀。

@model Models.Dog

@Html.TextBoxFor(m=>m.Name);
<inputtype="text" id="Name" name="Name"value="ruiky"/>

四、HtmlHelper – LabelFor & 模型元数据

1.模型类的元数据包括:属性(名称和类型) 与 特性包含的值。

2.操作:

步骤一:为实体类属性设置 DisplayName特性(特性Attribute,相当于标签,带一个构造函数参数。“贴标签”就是new了一个特性对象,设置给被贴的对象,编译器会将它编译进程序集的元数据中):

[DisplayName("登录名")]
public string LoginName { get; set; }

步骤二:在页面上显示某个属性的标签说明:

@Html.LabelFor(model =>model.LoginName)

结果:生成Html源码:

<labelfor="LoginName">登录名</label>


五、HtmlHelper – Display / Editor 模型元数据

@Html.Editor / @Html.Display 可以通过读取特性值生成HTML:

第一步:贴标签

[DataType(DataType.MultilineText)]
public string Name { get; set; }

第二步:在 新增/修改 页面上显示某个属性的input标签:

@Html.EditorFor(model => model. Name)

结果:生成Html源码:
<textarea id="Name"name="Name"></textarea>

六、HtmlHelper –RenderPartial

从分部视图里取数据

@Html.RenderPartial( "Par", ViewData.Model );
@Html.RenderPartial( "~/Views/Home/Par.cshtml ", ViewData.Model);


这个方法通过接受分部视图的文件名以及相应的可变化的数据进行的呈现可重用 分部视图 显示到具体的页面中

区别:
布局页面(模板页)子页,是把自己的内容填到 布局页面上去;
分部视图:供某个页面过来取分部视图的内容。

七、HtmlHelper类 - RenderAction

在视图中请求某个 Action方法,并把返回的结果直接显示在当前调用的View中。(违反了mvc设计原则:controller调用 view,而不是 view 调用 controller),不推荐!!!

@{Html.RenderAction("Test","Home");}


八、定义验证规则:
1.Model属性添加内置验证特性,介绍用的最多的其中的四个:

[Required], [StringLength], [Range], 和[RegularExpression]

2.操作:

(1)Model层中:

public partial class BlogArticle
{
public int AId { get; set; }
public int ACate { get; set; }
public int AAuthor { get; set; }

[DisplayName("文章标题")]
[Required(ErrorMessage="标题不能为空~~!")]
[StringLength(12, MinimumLength = 2, ErrorMessage="标题长度必须在2-12个字符之内")]
[Range(0,100,ErrorMessage="必须是0-100之间的数值")]
public string ATitle { get; set; }

}


(2)客户端验证:

a.引入JS脚本支持
<scriptsrc="@Url.Content("~/Scripts/jquery.validate.min.js")"type="text/javascript"></script>
<scriptsrc="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"type="text/javascript"></script>


b.添加语句
@{Html.EnableClientValidation(true);}(MVC3中默认开启)

c.显示验证信息:

@using (Html.BeginForm()) {
@Html.ValidationSummary(true)//一次性显示所有验证信息

@Html.EditorFor(model=> model.ATitle)
@Html.ValidationMessageFor(model=> model.AId)//显示属于该属性的验证信息

}

(3)服务端验证:
控制器中使用:ModelState.IsValid 判断是否通过验证


3.自定义验证特性及应用

可以通过继承自System.ComponentModel.DataAnnotations命名空间中的ValidationAttribute基类,定义完全定制的特性。
public class EmailAttribute : RegularExpressionAttribute
{
public EmailAttribute()
:base(@"^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$")
{
}
}

补:获取当前请求路径:HtmlHelper.ViewContext.RequestContext.HttpContext.Request.Url.AbsolutePath;

  

爱华网本文地址 » http://www.aihuau.com/a/25101014/213232.html

更多阅读

如何插入分页符 excel分页符怎么设置

如何插入分页符——简介在一篇word文档中,有时候需要在某二个段落之间另分一页,或者由于打印的需要也要将某些句段另分一页,所以就要插入一个分页符,今天我来说说怎么插入分页符。如何插入分页符——工具/原料word2003 如何插入分页符

Word2010中插入分页符的两种方法 word2010分页符

我们在使用Word2010编辑文档的过程中,有时需要在页面中插入分页符,以便于更灵活地设置页面格式。本篇经验介绍一下插入分页符的两种方法。Word2010中插入分页符的两种方法——工具/原料Word 2010Word2010中插入分页符的两种方法——

Excel中如何进行分页预览 excel取消分页预览

Excel中如何进行分页预览——简介Excel中如何进行分页预览,跟着小编一步步操作吧。Excel中如何进行分页预览——工具/原料电脑Excel2010Excel中如何进行分页预览——如何设置成分页预览?

Word文档如何快速分页自动、手动分页 word文档分页

Word文档如何快速分页(自动、手动分页)——简介Office Word是一种强大的文字编辑软件,其中的Word 2010可以将文档快速分页,其中包含自动分页和手动分页两种分页方式。下面由我分享一下:Word文档如何快速分页(自动、手动分页)——工具/原料

声明:《MVC札记三 --HtmlHelper mvc htmlhelper 分页》为网友撩爆你的少女心分享!如侵犯到您的合法权益请联系我们删除