使用HTML辅助方法载入分部视图
2015-06-24 14:51
204 查看
在webform中我们用过user control可以减少重复代码也利于将页面模组化,
在mvc中 叫分部视图 Partial View.
也就是一个片段的view.可以利用Partial view 把这部分的html或显示逻辑包装起来,方便重复引用,当建立出来的分部视图放置于Views/Shared目录,任何控制器下的action或者view都可以载入,共用的分部视图放在shared文件下。
如何建立?
与建立view的步骤一样,只是选择 添加--视图之后 要勾选上”创建为分部视图“(只要勾选上,所建立的检视页面将不会有任何预设内容弄,这时我们试图在这个分部视图页面加上html片段来显示)
注意:使用分布视图不一定需要建立相关的action,因为它仅仅是片段的html,且调用时,也不会调用action来执行。
如何载入?
html辅助方法拥有一个专门的扩充方法来载入分部视图,成为Partial,可以在view中直接将分部视图的执行结果取回。
Partial(HTMLHelper,String)
Partial(HTMLHelper,String,Object)
Partial(HTMLHelper,String,ViewDataDictionary)
Partial(HTMLHelper,String,Object,ViewDataDictionary)
-----
Html.Partial("ajaxPage")
Html.Partial("ajaxPage",Model)
Html.Partial("ajaxPage",null,ViewData["Model"])
Html.Partial("ajaxPage",Model,null,ViewData["Model"])
从控制器载入分部视图
分部视图除了可以直接从检视页面载入后,还可以像检视页面一样
从控制器中使用,比如Return PartialView()
这种方式与view辅助方法唯一的差别在于它不会套用于主版页面。
使用Html.Action辅助方法载入分部视图
除了在检视页面里使用Partial载入分部视图外,在mvc中还可以使
用Html.Action辅助方法载入另一个Action的执行结果。
eg:
public ActionResult aaa(){
return PartialView();
}
然后可以在检视页面利用Html.Action来载入这个Action的执行结果
@Html.Action("aaa")
差别:
@Html.Partial载入分部视图是通过HtmlHelper直接读取*.cshtml文
件,直接执行该检视并取得结果,若使用Html.Action的话,则会通
过HtmlHelper对IIS再进行一次处理要求(通过Server.Execute方法
),因此html.action会重新执行一遍Controller的生命周期。
@Html.DisplayNameFor(model => model.Email)
仅仅输出单纯的文字,完全没有额外的标签,而且输出的显示文字
是在Member数据模型中各栏位的DisplayName属性(Attributes)参
数值,如果没有定义DisplayName属性的参数值的话,预设就会输出
属性名称。
@Html.DisplayFor(model => model.Email)
是个模板辅助方法,专门用来输出显示模板,发现大部分栏位都直
接输出数据模型传入的值(没有额外的HTML标签),但有个特别的
栏位不太一样,那就是Email这个栏位输出,因为这个栏位的输出竟
然是一个含有超链接的Email地址。
自定义HTML辅助方法。
在mvc中 叫分部视图 Partial View.
也就是一个片段的view.可以利用Partial view 把这部分的html或显示逻辑包装起来,方便重复引用,当建立出来的分部视图放置于Views/Shared目录,任何控制器下的action或者view都可以载入,共用的分部视图放在shared文件下。
如何建立?
与建立view的步骤一样,只是选择 添加--视图之后 要勾选上”创建为分部视图“(只要勾选上,所建立的检视页面将不会有任何预设内容弄,这时我们试图在这个分部视图页面加上html片段来显示)
注意:使用分布视图不一定需要建立相关的action,因为它仅仅是片段的html,且调用时,也不会调用action来执行。
如何载入?
html辅助方法拥有一个专门的扩充方法来载入分部视图,成为Partial,可以在view中直接将分部视图的执行结果取回。
Partial(HTMLHelper,String)
Partial(HTMLHelper,String,Object)
Partial(HTMLHelper,String,ViewDataDictionary)
Partial(HTMLHelper,String,Object,ViewDataDictionary)
-----
Html.Partial("ajaxPage")
Html.Partial("ajaxPage",Model)
Html.Partial("ajaxPage",null,ViewData["Model"])
Html.Partial("ajaxPage",Model,null,ViewData["Model"])
从控制器载入分部视图
分部视图除了可以直接从检视页面载入后,还可以像检视页面一样
从控制器中使用,比如Return PartialView()
这种方式与view辅助方法唯一的差别在于它不会套用于主版页面。
使用Html.Action辅助方法载入分部视图
除了在检视页面里使用Partial载入分部视图外,在mvc中还可以使
用Html.Action辅助方法载入另一个Action的执行结果。
eg:
public ActionResult aaa(){
return PartialView();
}
然后可以在检视页面利用Html.Action来载入这个Action的执行结果
@Html.Action("aaa")
差别:
@Html.Partial载入分部视图是通过HtmlHelper直接读取*.cshtml文
件,直接执行该检视并取得结果,若使用Html.Action的话,则会通
过HtmlHelper对IIS再进行一次处理要求(通过Server.Execute方法
),因此html.action会重新执行一遍Controller的生命周期。
@Html.DisplayNameFor(model => model.Email)
仅仅输出单纯的文字,完全没有额外的标签,而且输出的显示文字
是在Member数据模型中各栏位的DisplayName属性(Attributes)参
数值,如果没有定义DisplayName属性的参数值的话,预设就会输出
属性名称。
@Html.DisplayFor(model => model.Email)
是个模板辅助方法,专门用来输出显示模板,发现大部分栏位都直
接输出数据模型传入的值(没有额外的HTML标签),但有个特别的
栏位不太一样,那就是Email这个栏位输出,因为这个栏位的输出竟
然是一个含有超链接的Email地址。
自定义HTML辅助方法。
相关文章推荐
- view如何从action中取得数据和 Html辅助方法
- Razor与HTML混合输出陷阱与技巧
- XML基础
- Html辅助方法
- HTML.ActionLink 和 Url.Action 的区别
- MVC HtmlHelper用法大全
- HTML中使背景图片自适应浏览器大小
- html meta标签详解
- html form表单提交数据并后台获取
- html背景音乐
- Spring MVC + handlebars +freemarker 返回html 代码,但是被放html注入而显示字符。
- html树形菜单控件
- 如何让Flash不遮挡HTML div元素的技巧_HTML/Xhtml_网页制作
- 如何让Flash不遮挡HTML div元素的技巧_HTML/Xhtml_网页制作
- jenkins html report
- C#替换html代码中所有img标签的路径保留文件名称
- LoadRunner性能测试HTML和URL两种录制模式区别
- document.write与document.getElementById.innterHTML的区别
- Html.Partial()传值的问题
- Html.Partial 和 Html.RenderPartial 、Html.Action 和 Html.RenderAction区别