MVC5+EF6 入门完整教程六

原文:https://www.cnblogs.com/miro/p/4102867.htmlhtml

本篇咱们谈谈分部视图(Partial View)。bootstrap

上篇文章提到过Partial和Action这两个helper, 本篇文章主要就结合这两个helper来说解分部视图(Partial View)的应用。函数

文章提纲

  • 理论基础
  • 详细步骤
  • 总结

理论基础 – 分部视图

Partial View指能够应用于View中以做为其中一部分的View的片断(相似于以前的user control), 能够像类同样,编写一次, 而后在其余View中被反复使用。性能

通常放在"Views/Shared"文件夹中以共享。网站

建立Partial View:通常直接右键"Views/Shared"文件夹添加分部视图。spa

使用Partial View有两类helper :3d

Html.Partial / Html.RenderPartialhtm

Html.Action / Html.RenderActionblog

详细步骤

大概五年前我开发过一个iPortal(相似于之前的iGoogle,如今iGoogle已经关闭), 其余相似的参考网站:http://dropthings.omaralzabir.com/开发

里面有一个个能够自定义的widget,下面咱们就开发一个简单的widget来讲明Partial View的用法。

建立分部视图

以下图,建立 _PartialPageWidget.cshtml

咱们作一个简陋的widget.

参考下面的图,定义widget的HTML结构。

借用了bootstrap中panel的样式,结构以下。

经过Html.Partial / Html.RenderPartial 使用

直接应用Html.Partial或Html.RenderPartial辅助方法比较简单。

打开以前建好的Views/MVCDemo/Index.cshtml文件,添加以下内容:

显示结果:

经过Html.Action / Html.RenderAction 使用

经过Html.Action/Html.RenderAction使用稍微复杂一点,分红两步。

  1. 在要显示的View所对应的Controller中心增长一个Action.

    还用上面这个页面,咱们在MVCDemoController.cs中增长一个Action

    作个简单的说明:

    1. [ChildActionOnly] 表示这个Action只应做为子操做进行调用。也就是说直接经过 controller/action这样的网址是不能访问的,会提示只能由子请求访问的错误。
    2. 必须返回一个PartialView
  2. 在View中添加相关代码

    显示结果和上一种方法同样

两种使用方式小结

当View中引用了一个或多个分部视图时,此View与各分部视图默认获得同样的数据,也就是说View及其中全部的Partial View默认状况下共享View中的ViewData和ViewBag.

须要使View和其中引入的Partial View有不一样的数据,须要经过Html.Action/Html.RenderAction辅助方法, 并在对于被调用的Action中设置对应的数据。

另外还有几点须要注意:

  1. XXX和RenderXXX的区别在于,一个是直接返回字符串,另一个是直接写入到相应输出流,所以不能直接放在代码表达式中,必须放在代码块中。

    前面的示例中两种写法是等价的。RenderXXX有轻微的性能优点,在大量的RenderXXX运行时,才能反映出性能上的优点。

  2. Partial/RenderPartial一般在单独的文件夹中应用视图标记来帮助View渲染视图模型的一部分。

    Action/RenderAction执行单独Controller中的Action来显示结果,提供了更多的灵活性,例如利用单独的Controller传递不一样值。文章最后咱们会举个例子说明。

  3. Partial/RenderPartial和Action/RenderAction的参数分别是 partialView和 Action的名字。固然还有其余的重载函数,咱们只说最经常使用的。应用时能够按照咱们前面举的例子。

Html.Partial和Html.Action差别举例

最后咱们举个例子说明两种用法的差异。

  1. 新建一个Partial View

  2. Controller中新建两个Action,SharedDateDemo和PartialViewDate.

    根据SharedDateDemo生成主View, PartialViewDate供Html.Action调用

  3. 主View: SharedDateDemo.cshtml分别显示

    主View的时间;

    用Html.Partial调用Partial View的时间;

    用Html.Action调用Partial View的时间。

    显示结果:

    上面结果能够清晰的看到:

    1. View及其中全部的Partial View默认状况下共享View中的ViewData和ViewBag
    2. 能够经过Html.Action, 配合被调用的Action改变传递不一样的数据

总结

本次咱们主要讲解了Partial View这一实用功能的使用。

Html.Partial使用方便,在不须要改变数据内容时很是方便。

Html.Action 使用更加灵活,能够根据业务要求按需定制Partial View显示内容。

相关文章
相关标签/搜索