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文件的大小

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值