ASP.NET MVC4|MVC5
文章平均质量分 82
.NET跨平台
比较认真。编程就是算法和数据结构,算法和数据结构是编程的灵魂。
展开
-
MVC中的默认Model绑定者DefaultModelBinder
一、题外话public IModelBinder DefaultBinder{ get { if (this._defaultBinder == null) { this._defaultBinder = new DefaultModelBinder(); } return this.转载 2018-02-03 15:06:44 · 441 阅读 · 0 评论 -
asp.net MVC利用自定义ModelBinder过滤关键字的方法
前面一篇主要讲解了如何利用ActionFilter过滤关键字,这篇主要讲解如何利用自己打造的ModelBinder来过滤关键字。首先,我们还是利用上一篇《asp.net MVC利用ActionFilterAttribute过滤关键字的方法》中的实体类,但是我们需要加上DataType特性,以便于我们构造的ModelBinder通过DataTypeName识别出来:using Syste转载 2018-02-03 15:13:44 · 903 阅读 · 0 评论 -
ASP.NET MVC5 ModelBinder
什么是ModelBindingASP.NET MVC中,所有的请求最终都会到达某个Controller中的某个Action并由该Action负责具体的处理和响应。为了能够正确处理请求,Action的参数(如果有的话),必须在Action执行之前,根据相应的规则,把请求中所包含的数据提取出来并将映射为Action的参数值,这个过程就是ModelBinding。ModelBinding的作用就是为转载 2018-02-03 15:14:15 · 533 阅读 · 0 评论 -
MVC中的扩展点(一)路由系统简介
之所以说MVC框架很灵活,在于其扩展性很强,几乎在请求处理管道的任何一个节点都可以扩展。本系列文章将会对扩展点进行总结整理,以此增强对MVC框架的了解。MVC是建立在路由系统之上的,所以严格上讲,路由系统并不属于MVC框架,路由系统是.NET Framework 3.5 SP1新增的内容,位于System.Web.Routing命名空间。下面为ASP.NET MVC请求处理管道示意图(注:来源于St转载 2018-02-03 15:51:15 · 396 阅读 · 0 评论 -
MVC中的扩展点(二)路由上的扩展
一、RouteBase前面我们知道,UrlRoutingModule通过遍历RouteTable.Routes中的路由对象来获取匹配的RouteData,从而将请求转发到相应的IHttpHandler处理程序。RouteTable.Routes是一个RouteBase对象集合,可向集合中添加任何RouteBase的子类。所以,我们可以通过创建一个RouteBase的子类,然后将其添加到RouteTa转载 2018-02-03 15:59:46 · 355 阅读 · 0 评论 -
MVC中的扩展点(三)控制器工厂
当路由系统找到与当前请求匹配的路由信息(RouteData),而路由信息中的RouteHandler为MvcRouteHandler,那么此请求将由MvcRouteHandler返回的MvcHandler来负责处理。默认情况下MvcHandler将根据请求上下文(RequestContext)中的信息找到对应的控制器和活动方法,通过调用活动方法,返回应答内容,将其返回给客户端。MvcHandler类转载 2018-02-03 16:12:18 · 550 阅读 · 0 评论 -
ASP.NET MVC5中的文件上传
web开发中,文件的上传是非常基本功能之一。 在asp.net中,通常做法是利用webservice 来接收文件请求,这样做的好处就是全站有了一个统一的文件上传接口,并且根据网站的实际情况,可以将webservice部署到其他服务器上,可以兼容考虑将来的分布存储等等问题。在MVC中实现文件上传主要有2中方式: 1.普通Controller实现文件上传 2.ApiController实现文转载 2018-01-08 22:34:18 · 6250 阅读 · 1 评论 -
MVC ControllerFactory学习笔记
上面这张图是asp.net mvc的工作流程图,我们可以看到当一个http请求来临时,首先需要经过路由系统,路由系统从中获取一些路由信息,然后ControllerFactory根据所得到的路由信息生成相应的Controller。也就是说,ControllerFactory的作用就是根据路由信息生成相应的Controller。1.ASP.NET MVC内置的ControllerFactory—–转载 2018-02-08 21:20:51 · 655 阅读 · 0 评论 -
MVC中的扩展点(六)ActionResult
ActionResult是控制器方法执行后返回的结果类型,控制器方法可以返回一个直接或间接从ActionResult抽象类继承的类型,如果返回的是非ActionResult类型,控制器将会将结果转换为一个ContentResult类型。默认的ControllerActionInvoker调用ActionResult.ExecuteResult方法生成应答结果。MVC中实现的默认ActionRe转载 2018-02-04 10:56:28 · 935 阅读 · 0 评论 -
ASP.Net MVC笔记(四)【校验、AJAX与过滤器】
一、校验 — 表单不是你想提想提就能提1.1 DataAnnotations(数据注解)位于 System.ComponentModel.DataAnnotations 命名空间中的特性指定对数据模型中的各个字段的验证。这些特性用于定义常见的验证模式,例如范围检查和必填字段。而 DataAnnotations 特性使 MVC 能够提供客户端和服务器验证检查,使你无需进行额外的编码来控制数据的有效。通转载 2018-01-22 22:19:01 · 926 阅读 · 0 评论 -
ASP.Net MVC笔记(五)【区域、模板页与WebAPI初步】
123转载 2018-01-22 22:19:49 · 1144 阅读 · 1 评论 -
仅此一文让你明白ASP.NET MVC 之View的显示
有些人要问题,为什么我要学框架?这里我简单说一下,深入理解一个框架,给你带来最直接的好处:使用框架时,遇到问题可以快速定位,并知道如何解决;当框架中有些功能用着不爽时,你可以自由扩展,实现你想要的操作,甚至可以拿到源码直接修改;想成为框架师的必经之路;提取框架中的优秀代码和思想,为己所用;更多好处,你可以自己去体会,有兴趣的可以看一下asp.net中 mvc部分的源码:http:/转载 2018-01-22 22:20:54 · 2715 阅读 · 0 评论 -
仅此一文让你明白ASP.NET MVC 之Model的呈现
我们来看一个小例子,在一个ASP.NET MVC项目中创建一个控制器Home,只有一个Index:public class HomeController : Controller { public ActionResult Index() { var model = new DemoModel {Email = "test@t转载 2018-01-22 22:21:19 · 930 阅读 · 0 评论 -
Asp.Net MVC4系列--进阶篇之Helper(1)
从本章开始,将为读者介绍MVC4中的helper使用方法从sample开始准备controller和Action public class TestController : Controller { public ActionResult Index() { ViewBag.Fruits = new[] { "Apple", "Ora转载 2018-01-20 22:20:51 · 570 阅读 · 0 评论 -
ASP.NET MVC知识点
HttpContext, HttpContextBase, HttpContextWrapper联系HttpContextHttpContext是最原始的ASP.NET Context. MVC的目的之一是能够单元测试。HttpContext没有base class,并且不是virtual,所以不能用单元测试,因为没有办法mock. HttpContextBaseHttpCon转载 2018-01-22 22:24:31 · 1206 阅读 · 0 评论 -
Datatables.js在asp.net mvc5中的使用
实体层Area.csusing System;using System.Collections.Generic;using System.Linq;using System.Web;namespace MvcDemo.Models{ public class Area { public int Id { get; set; } public s转载 2018-03-03 16:26:04 · 1489 阅读 · 0 评论 -
MVC5使用Geetest极验验证码示例
Models文件夹实体类 LoginInfo.csusing System;using System.Collections.Generic;using System.ComponentModel.DataAnnotations;using System.Linq;using System.Web;namespace MvcDemo.Models.Geetest{ pu转载 2018-03-04 14:55:51 · 1316 阅读 · 0 评论 -
MVC5使用BaiduMap百度地图示例
BaiduMapController.csusing System.Collections.Generic;using System.Linq;using System.Web.Mvc;using MvcDemo.Models;using Newtonsoft.Json;namespace MvcDemo.Controllers{ public class BaiduMapCont转载 2018-03-04 14:57:11 · 1204 阅读 · 2 评论 -
Asp.Net Mvc5表单提交之List集合
一、说明1.Asp.Net Mvc中Action的参数可以自动接收和反序列化form表单的值,2.对于name=value类型,只要Action参数的变量名和input的name相同就行,不区分大小写3.对于Model类型的,只要Action参数Model的字段名和input的name相同就行,不区分大小写4.对于List类型,如下二、List 基础数据类型提交Html代码<div class="p转载 2018-04-25 12:55:05 · 3139 阅读 · 0 评论 -
MVC5之表单集合数据自动绑定到对象属性(集合)中
##前言之前没遇到过这个问题,在项目中遇到这个问题时想法挺好,按照流程走下去,结果事与愿违,于是开始探索着解决方案,接下来我们来看看这个问题,早已经明了的童鞋请绕道,此文仅供未遇到的童鞋提供一种解决方案。话题首先我们来看看整个问题的出现,介绍一下问题的背景。 public class Blog { public string BlogName { get; set;转载 2018-04-25 13:32:20 · 1594 阅读 · 0 评论 -
Mvc 5中导出Excel
Model层Student.csusing System;using System.Collections.Generic;using System.Linq;using System.Web;namespace ExportToExcel.Models{ public class Student { public int ID { get;转载 2018-05-10 22:57:13 · 1083 阅读 · 0 评论 -
ASP.NET MVC 应用提速的十种方法
主要介绍ASP.NETMVC 应用提速的六种方法,因为没有人喜欢等待,所以介绍几种常用的优化方法。 大家可能会遇到排队等待,遇到红灯要等待,开个网页要等待,等等等。 理所当然,没有人喜欢等待网页慢吞吞地加载,尤其是在移动端访问网站时。其实,Web 开发者敏感的神经决定了我们等待与否。 现在,快速响应不仅是来自用户的要求,还是决定搜索引擎的速度。 考虑到大多数网站都存在速度方面的问题,在本文...转载 2018-05-27 15:24:32 · 919 阅读 · 0 评论 -
记一次ASP.NET MVC性能优化(实际项目中)
前言在开发中为了紧赶项目进度而未去关注性能的问题,在项目逐渐稳定下来后发现性能令人感到有点忧伤,于是开始去关注这方面,本篇为记录在开发中遇到的问题并解决,不喜勿喷。注意:以下问题都是在移动端上出现,无法确定在网站中是否也同样会出现。 卡顿问题 请求方式项目属于移动端,在手机上查看某一列表时并进行向下滑动时经常性卡顿问题,滚动的插件采用的是iscroll,当然怀疑是不是这个插件问题,但是...转载 2018-05-27 15:41:57 · 1094 阅读 · 0 评论 -
ASP.NET MVC之如何看待内置配置来提高性能优化(四)
前言前几篇我们比较基础的讲了下MVC中的知识,这一节我们穿插点知识,讲讲MVC中我们可以提高性能的办法。 Razor视图引擎优化(优化一)我们知道默认情况下配置MVC去解析一个视图会首先约定通过查找所有的匹配Web Form视图引擎的名称。例如当我们查找一个不存在的视图时,会出现如下错误:从上面我们可以很明显的知道,如果我们MVC应用程序中没有使用ASPX视图时,当我们在Action...转载 2018-05-27 15:56:56 · 1205 阅读 · 0 评论 -
ASP.NET MVC 反射例子
HomeController.csusing System;using System.Collections.Generic;using System.Linq;using System.Reflection;using System.Web;using System.Web.Mvc;namespace reflection.Controllers{ [Descri...转载 2018-06-05 23:13:59 · 1048 阅读 · 0 评论 -
mvc源码解读(11)-mvc四大过滤器之AuthorizationFilter
在上一篇文章中,在讲完ActionDescriptor这个类之后,我们直接跳过了这一句代码:FilterInfo filterInfo = GetFilters(controllerContext, actionDescriptor);直接讲了ParameterDescriptor,现在我们回过头来看GetFilters方法返回一个FilterInfo实例,FilterInfo类里面的...转载 2018-07-10 21:00:50 · 2132 阅读 · 0 评论 -
mvc源码解读(12)-mvc四大过滤器之ActionFilter
上一篇中我们随便聊了聊MVC的授权过滤器AuthorizeFilter,其实真正关于.net平台下的认证体系之复杂远远超出了我们的想像,对权限的控制我们只能找到相对安全的做法,并不能从绝对上杜绝不安全的验证,特别是对于.net下授权权限的控制。有机会我们可以回过头来深入的探讨有关.net平台下的权限控制体系。这一篇我们继续根据mvc3的源码来学习mvc的ActionFilter方法过滤器。和A...转载 2018-07-10 21:13:12 · 803 阅读 · 0 评论 -
mvc源码解读(13)-MVC四大过滤器之ResultFilter
上一篇讲到ActionFilter,这一篇我们来讲解ResultFilter,顾名思义,就是结果过滤器。和ActionFilter要实现抽象类ActionFilterAttribute里面的四个方法一样,我们自定义的ResultFilter的过滤特性类也要继承ActionFilterAttribute才行,同时实现接口IResultFilter里面的方法: public interface ...转载 2018-07-10 21:35:35 · 1721 阅读 · 0 评论 -
mvc源码解读(14)-mvc四大过滤器之ExceptionFilter
这一章我们主要来讲异常过滤器ExceptionFilter,废话不多说,mvc3中默认的异常过滤器特性类是HandleErrorAttribute,该类的主要主要成员有:public Type ExceptionType{get;set} public string View { get { ...转载 2018-07-10 21:42:24 · 841 阅读 · 0 评论 -
WebApi和Mvc的Session一直获取不到问题
前一段时间在给移动端写接口时遇到一个调用接口发送邮箱 session一直获取不到的问题。大家都知道Webapi默认是不开启Session会话支持的。所以需要Global文件中要重写方法如下: public override void Init() { this.PostAuthenticateRequest += (sender, e) =&gt; HttpC...转载 2018-07-10 21:43:57 · 2751 阅读 · 1 评论 -
ASP.NET MVC & WebApi 中实现Cors来让Ajax可以跨域访问
什么是Cors?CORS是一个W3C标准,全称是”跨域资源共享”(Cross-origin resource sharing)。 它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。 本文详细介绍CORS的内部机制。一、简介CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。整个CORS...转载 2018-07-10 21:43:18 · 3082 阅读 · 0 评论 -
ASP.NET MVC中使用FluentValidation验证实体
1、FluentValidation介绍FluentValidation是与ASP.NET DataAnnotataion Attribute验证实体不同的数据验证组件,提供了将实体与验证分离开来的验证方式,同时FluentValidation还提供了表达式链式语法。2、安装FluentValidationFluentValidation地址:http://fluentvalidation....转载 2019-01-03 21:57:43 · 508 阅读 · 0 评论 -
使用.NET MVC和Bootstrap
项目结构HomeController.csusing System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using TodoList.Models.Login;namespace TodoList.Controllers{ pu...转载 2019-01-03 23:41:00 · 477 阅读 · 0 评论 -
Html.DropDownList()的用法
Html.DropDownList()赋默认值:页面代码如下:&amp;lt;% List&amp;lt;SelectListItem&amp;gt; list = new List&amp;lt;SelectListItem&amp;gt; {new SelectListItem { Text = &quot;启用&quot;, Value = &quot;0&a转载 2019-01-01 23:10:55 · 5217 阅读 · 0 评论 -
分析MVC5源码,并实现一个ASP.MVC
本节内容不是MVC入门教程,主要讲MVC原理,实现一个和ASP.NET MVC类似基本原理的项目.MVC原理是依赖于ASP.NET管道事件基础之上的.对于这块,可阅读上节内容[ASP.NET]谈谈IIS与ASP.NET管道本节目录:MVC简介MVC5源码实现一个MVCMVC简介随着技术的发展,现在已经将MVC模式等同于三层模式。如果要严格区分的话,UI层指View和Contro...转载 2019-01-14 23:25:26 · 822 阅读 · 0 评论 -
MVC5和Jquery Datatables1.10
HomeController.csusing System;using System.Collections.Generic;using System.Linq;using System.Web.Mvc;using MVCDatatableApp.Models;namespace MVCDatatableApp.Controllers{ public class HomeC...转载 2019-01-16 13:44:54 · 490 阅读 · 0 评论 -
ASP.Net MVC与WebForm的区别
#WebForm网站和MVC网站运行机制的区别MVC相对于WebForm来说更难学习,但性能优于WebForm,比较适合大型项目,开发成本较高,但耦合度低,易于维护,没有太多的现成控件,开发效率较低。对WebForm有基础的人反而不太容易学MVC。##一、MVC相对于WebForm的变化1 ,使用URL Routing技术:Web程序的URL不再是指向具体的物理页面.aspx,而是指向...转载 2019-02-23 22:55:49 · 1775 阅读 · 0 评论 -
HttpContext请求上下文对象
#一、HttpContext概述HttpContext基于HttpApplication的处理管道,由于HttpContext对象贯穿整个处理过程,所以,可以从HttpApplication处理管道的前端将状态数据传递到管道的后端,完成状态的传递任务。HttpContext的生命周期从服务器接收的HTTP请求开始到反应发送回客户端结束。在WebForm或类库(包括MVC)项目中,通过Curr...转载 2019-03-07 22:25:58 · 1542 阅读 · 0 评论 -
WebApi和MVC的区别
使用上区分,mvc主要用于建站,web api主要用于构建http服务,当然你非要用mvc来构建Uri式的Api也行,不过显然是没有这个必要的,一个不恰当的比喻就像是你也可以玩破解版的单机游戏,也可以通过平台进行联机,但是始终不如steam上来得爽是吧。自身实现上区分的话,两种框架主要是在Asp .Net的基础上进行改造,主要是对HttpModule和HttpHandler做了扩展,实现方法是...转载 2019-03-07 22:34:40 · 3384 阅读 · 0 评论 -
.NET正则替换URL参数值
public class HomeController : Controller { public ActionResult Index() { var url = "http://www.ly.com?ak=abcdefg&user=sbd"; var queryString = "ak=hello&...转载 2019-04-16 22:39:01 · 615 阅读 · 0 评论