asp.Net   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Asp.net mvc 知多少(七)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

系列导航

Q70. 什么是ASP.NET MVC 中的 Partial View(分布视图)? Ans. Partial view 类似于ASP.NET Web forms 中的user control(用户控件)用来进行代码重用。 Partial views 帮助我们减少重复代码。 因此 Partial views是可重用的,像Header和Footer视图那样。 我们可以使用它去显示博客评论,商品类别,社交按钮,动态时钟日历等等。 创建partial view 的最佳实践是在Shared文件夹创建并以 "_"为前缀命名,但这并不是强制的。视图以 "_" 为前命名则说明该view是一个可重用的。


Q71. 如何在controller中返回partial view ? Ans.return PartialView(options);@H_489_10@ 其中 options可以是一个Model或View名称。


Q72. ASP.NET MVC有哪几种方式用来返回一个Partial View? Ans. 主要有以下四种方式:Html.RenderPartial

  • 这种方式的结果会直接写入http响应流,也就意味着它使用与当前页面/模板相同的TextWriter对象。
  • 这个方法返回值类型为void。
  • 可以直接使用不需要创建action。
  • 当Partial view中要显示的数据已经在相应的View Model中时,使用RenderPartial 方法将非常好用。比如:在博客中要显示一篇文章的评论,就可以使用RenderPartial来显示评论,因为文章信息及评论一般文章的View Model中填充了。@{Html.RenderPartial("_Comments");}@H_489_10@
  • 这个方法比Partial方法快是因为它的结果直接写入响应流。

Html.RenderAction

  • T这种方式的结果会直接写入http响应流,也就意味着它使用与当前页面/模板相同的TextWriter对象。
  • 这种方式,我们需要创建一个对应的child action 去呈现对应的partial view。
  • 当Partial view中要显示的数据与相应的View model相互独立时,使用这种方式比较有用。比如:在博客中需要在每一个页面显示文章分类列表。因为在文章分类列表会在不同的model中进行填充。@{Html.RenderAction("Category","Home");}@H_489_10@
  • 当你想缓存一个partial view时,这个方法将是最佳选择。
  • 这个方法比Action方法快是因为它的结果直接写入响应流。

Html.Partial

  • 以html编码的字符串来呈现partial view。
  • 这个方法的结果可以存储在一个变量中,因为返回类型为String。
  • 可以直接使用不需要创建action。
  • 和RenderPartial相似,当Partial view中要显示的数据已经在相应的View Model中时,使用Partial 方法将非常好用。比如:在博客中要显示一篇文章的评论,就可以使用Partial来显示评论,因为文章信息及评论一般文章的View Model中填充了。@Html.Partial("_Comments")@H_489_10@

Html.Action

  • 以HtmlString方式呈现partial view。
  • 这种方式,我们需要创建一个对应的child action 去呈现对应的partial view。
  • 这个方法的结果可以存储在一个变量中,因为返回类型为String。
  • 当Partial view中要显示的数据与相应的View model相互独立时,使用这种方式比较有用。比如:在博客中需要在每一个页面显示文章分类列表。因为在文章分类列表会在不同的model中进行填充。@{Html.Action("Category","Home");}@H_489_10@
  • 这个方法将也是一个最佳选择,当你想缓存一个partial view时。

Q73. 介绍下ASP.NET MVC中的Area? Ans. Areas 是在Asp.net MVC2引入的。根据Web应用的functional sections(职能)来分离models,views,和 controllers。例如administration(后台管理),billing(订单处理),customer support(客户支持)等。 在大的web项目中,使用Area非常有帮助,它将每个模块放到单独的文件夹下处理。但同时,使用Area会导致难于管理。

s.jianshu.io/upload_images/2799767-5d7e5061cf1d2ae5.png?imageMogr2/auto-orient/Strip%7CimageView2/2/w/1240" alt="Area截图">

每一个Mvc area拥有自己的文件结构,用来分开保存controllers,和 models。这也有利于多个开发者共同开发同一个Web应用,而互不干扰。


Q74. ASP.NET MVC中如何注册Area? Ans. 在使用Area之前,确保已经在Global.asax的Application_Start方法中注册。

protected void Application_Start()
{
 //Register all application Areas
 AreaRegistration.RegisterAllAreas();
}
@H_489_10@

需要记住的是,必须在最开始注册Area,以至于注册的setTings,filters 和 routes 能够应用于Area。


Q75. 什么是Child action以及如何调用它? Ans. 使用Child action 非去创建可重用的组件非常方便,它能直接植入你的视图。 ASP.NET MVC 的partial views 也是用来创建可重用的组件,一个Partial View可用通过一个Action 方法呈现。 Action方法可以用 child 特性标记,从而拥有独立于父视图的MVC生命周期。 Child action 不能独立被调用,一般在View的内部被调用。

[ChildActionOnly]
public ActionResult MenuBar()
{
 //TODO:
 return PartialView();
}@H_489_10@

一个child action可以在一个View中通过@Html.RenderAction@H_489_10@ 或@Html.Action@H_489_10@ 来调用。


Q76. 什么是Scaffolding(脚手架)? Ans. Scaffolding 是一个用来高效生成基本的CRUD代码。 而且你可以根据自己的需求自定义自动生成的代码。 Scaffolding 包括page templates,entity page templates,field page templates,以及 filter templates。这些模板统称脚手架模板,帮助我们快速构建功能性数据驱动网站。


Q77. 脚手架模板在ASP.NET MVC是如何工作的? Ans. Scaffold templates 在EF的帮助下生成基本的代码用来基本的CRUD操作。这些模板使用的是Visual studio T4 模板系统去生成视图来进行CRUD操作。 下面是具体的步骤:

s.jianshu.io/upload_images/2799767-a9e21b7870b03a25.png?imageMogr2/auto-orient/Strip%7CimageView2/2/w/1240" alt="1.添加Controller">

s.jianshu.io/upload_images/2799767-22bf71cbeb98a448.png?imageMogr2/auto-orient/Strip%7CimageView2/2/w/1240" alt="2.选择脚手架模板生成CRUD">

s.jianshu.io/upload_images/2799767-3e34d500efbb7ac1.png?imageMogr2/auto-orient/Strip%7CimageView2/2/w/1240" alt="2.命名Controller">

s.jianshu.io/upload_images/2799767-a31e55442aBAC37a.png?imageMogr2/auto-orient/Strip%7CimageView2/2/w/1240" alt="最终生成的代码">


大佬总结

以上是大佬教程为你收集整理的Asp.net mvc 知多少(七)全部内容,希望文章能够帮你解决Asp.net mvc 知多少(七)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。

标签: