MVC(模型-控制器-视图)架构模式(下)

MVC架构模式常见问题

1、MVC的路由选择功能是帮你定义一个URL规则,映射URL到控制器。在“global.asax“文件中写路由映射表。

2、可以映射多个URL到同一个映射,只需要添加多条不同Key名字的记录,并且指定同样的控制器和动作。

3、使用hyperlink生成连接,可以通过使用ActionLink方法从一个视图链接到另一个视图。

4、在MVC中可以通过tempdata,viewdata和viewbag来保持sessions。

  • Temp data  -在不同的控制器或动作间转换时保持数据。另外,进行页面转向时,tempdata可以保持数据。它是一个内部的Session变量。
  • View data  - 可以在控制器和视图间保持数据。
  • View Bag   - 它是视图数据的动态包装。使用Viewbag不需要类型转换。它使用的是内部动态关健词

5、在MVC中可以使用数据注释(早期版本)和数据模型的属性标签来做输入验证。

6、使用Html helper类中的ValidationSummary方法可以一次显示所有错误信息。

7、启用客户端验证:第一步引用必须的jQuery文件;第二步去调用EnableClientValidation方法。

8、MVC中的Razor是一个轻量级的视图引擎,MVC最初只有一个ASPX的视图类型,直到MVC3才引进了Razor。相比于ASPX,Razor是干净的、轻量级的和语法更简单的。

9、MVC中可以使用Windows或Forms做授权和认证,通过修改web.config文件,并设置验证模式为Windows可以去执行Windows认证。

10、MVC中有两种方式可以执行AJAX:AJAX libraries;jQuery。

MVC中的十二种结果类型中比较主要的有ActionResult,ViewResult,JsonResult。

MVC中的12种结果类型,最主要的是ActionResult类,它是一个基础类,它有11个子类型,如下:

  • ViewResult  - 给响应流渲染指定的视图
  • PartialViewResult  - 给响应流渲染指定的局部视图
  • EmptyResult  - 返回空的响应结果。
  • RedirectResult  - 执行一个HTTP转向到指定的URL。
  • RedirectToRouteResult  - 执行一个HTTP转向到一个URL,这个URL由基于       路由数据的路由引擎来决定
  • JsonResult  - 序列化一个ViewData对像到JSON格式。
  • JavaScriptResult  - 返回一段Javascript代码,它可以在客户端执行。
  • ContentResult  - 写内容到响应流,不需要视图支持。
  • FileContentResult  - 返回一个文件到客户端。
  • FileStreamResult  - 返回一个文件到客户端,它提供的是流。
  • FilePathResult  - 返回一个文件到客户端。

11、MVC中的ActionFilters可以帮助你在MVC action执行中或执行后,执行一些逻辑。

    Action filters通常用在下面的场景中:

  • 在action发生前,执行POST logic before the action happens.
  • 取消一个当前的执行。
  • 检查返回值。
  • 给action提供特殊的数据。

 你有两种方式创建action filters:

  • 内联action filter.
  • 创建一个ActionFilter属性.

创建内联action filter,我们需要执行 IActionFilter 接口。 ActionFilter 接口有两个方法:OnActionExecuted 和 OnActionExecuting。在这两个方法中我们可以执行预处理逻辑或取消逻辑。

12、MVC中可以创建自定义的视图引擎, 步骤如下:

     (1)需要创建一个类去执行IView接口。我们应该在这个类的render函数中写一些逻辑,指明如何渲染视图

     (2)我们需要创建一个类,它继承 VirtualPathProviderViewEngine ,并且我们需要提供一个文件夹路径和视图文件扩展名。例如,Razor是“cshtml”,aspx是“.aspx”。

     (3) 需要注册自定义视图到视图集合。注册自定义视图引擎最适合的地方是global.aspx文件中的 ViewEngines 集合。

13、WebAPI是一个通过HTTP方式公开数据的技术,跟随REST规则,相比于SOAP,它是轻量级的,只有需要的信息被传递,WebAPI的输出是简单的字符串、JSON、简单XML格式等。所以,写解析逻辑非常简单。

14、MVC中识别POST或者GET,可以使用Request.HttpMethod./15、MVC中的打包与压缩帮助我们减少一个页面的请求时间,从而提高页面执行性能。

打包如何搞高性能?

我们的项目总是需要CSS和脚本文件。打包帮助你合并多个Javascript和css文件到单个文件,从而最小化多个请求到一个请求。

例如,包含下面的web请求到一个页。这个页面要求两个Javascript文件, Javascript1.js 和 Javascript2.js 。 当请求这个页面时,它要做三次请求:

  • 一个是Index页面. 
  • 两个请求是为了两个JavaScript文件: Javascript1.js  和 Javascript2.js .

如果页面中有大量的javascript文件,这样会降低性能。如果我们可以合并所有的JS文件到一个文件,只请求一个,这将加增加性能。

15、在debug模式下,你需要在bundleconfig.cs中设置 EnableOptimizations 为true,否则你不会看到打包效果。

BundleTable.EnableOptimizations = true;

16、压缩功能通过移除空格、注释等减少了脚本与CSS文件的大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值