随笔分类 - MVC
Asp.net SignalR 实现服务端消息推送到Web端
摘要:之前的文章介绍过Asp.net SignalR, ASP .NET SignalR是一个ASP .NET 下的类库,可以在ASP .NET 的Web项目中实现实时通信. 今天我们来实现服务端消息推送到Web端, 首先回顾一下它抽象层次图是这样的: 实际上 Asp.net SignalR 2 实现 服务端消息推送到Web端, 更加简单. 为了获取更好的可伸缩性...
阅读全文
微软Asp.net MVC5生命周期流程图
摘要:.NET WEB Development blog 发布了Asp.net MVC5生命周期文档, 这个文档类似Asp.net应用程序生命周期,您以前开发ASP.NET WEB应用程序应该看过。 文档中有图形显示每个细节的模板生命周期,来帮助决策开发时代码如何编写,对应图示有链接会跳转到相应的网页。相信您对ASP.NET MVC WEB 应用程序开发是很好的参考。如下图是其中部分截图:...
阅读全文
Asp.net发布的CheckList
摘要:Asp.net Web 应用程序正式发布前,我们还是做一些检查,所以需要这个CheckList,如下图今天的Asp.net 已演化这样的了: 但不管是什么组件,目前的Web最终还得通过Http,我们可以在不同层次做相应的检查。 基本 1. 所有UnitTest单元测试都通过了吗?这个看起来很简单的检查,但如果你的项目没有持续集成,你可能忘记检查是否...
阅读全文
Asp.net MVC 视图引擎集合
摘要:本文将列举常用的 Asp.net MVC View Engines: 1. ASPX View Engine 第一个也是我们最熟悉的---aspx,相信做过WebForm开发对Aspx都比较了解: 小示例: <%@ Control Inherits="System.Web.Mvc.ViewPage<IEnumer...
阅读全文
Asp.net MVC 4 异步方法
摘要:前面一篇文章我们介绍了Asp.net MVC 3下异步操作。今天我们来看一下,同样功能在 Asp.net MVC 4 下的实现,基于.net framework 4.5 下的async支持,让我们的代码更加简单,看下面片断代码名叫Index的Action方法: public async Task<ActionResult> IndexAsync() ...
阅读全文
Asp.net MVC 3 异步操作
摘要:在 Asp.net MVC 应用程序中,有时间需要执行一些异步操作。那么 Asp.net MVC 下的异步请求是怎么一个过程呢? 异步被调用时,发生以下过程: 1. Web服务器从线程池得到一个线程(工作线程),接着安排它来处理进来的请求,该工作线程启动一个异步操作。 2. 工作线程被线程池收回,为另一个Web请求服务。 3. 当异步操作完成后,它会通知ASP.NET...
阅读全文
Asp.net MVC 限制一个方法到指定的Submit按钮
摘要:在Asp.net Web Form 中,每个单独的 HTML Form 有时会包含多个Submit的button. 那么用户最后点击那一个Button. 我们通常需要借助Javascript来帮助我们,先看下面的Html代码: <form name="myform" id="myform" method="post"> <input type="text...
阅读全文
Asp.net下Html5新标签的扩展
摘要:前面一篇文章我们谈到Html5 增加的一些input attrbitue,今天让我们来在Asp.net MVC 中写一些 HtmlHelper 让其更加简单的实现。直接看下面的代码: #region private enum /// <summary> /// InputType enum /// </summary> ...
阅读全文
Asp.net MVC4与Razor呈现图片的扩展
摘要:我们基于Asp.net MVC 4 Web Application 写一个扩展方法来呈现图片的扩展。Gravatar是提供个人Profile信息的网站,包括图片LOGO。你可以引用你的Profile到论坛,Blog都可以。 一开始我们写一个Helper如下: 1: namespace MVC4Demo.Extensions 2: { ...
阅读全文
用Html5与Asp.net MVC上传多个文件
摘要:Html 5 的有一些File API,对Form表单增强的特性,让我们轻松支持多文件上传,看下面的Html片断代码: <form action="/Home/Upload" enctype="multipart/form-data" id="form2" method="post"> <input type="file" name="fil...
阅读全文
Asp.net MVC 3 中Session与ViewBag传值到Js中
摘要:Asp.net MVC 3 中Session与ViewBag传值到Javascript中, 主要方法有: 1. 使用Javascript Variable 假设有say _layout.cshtml<head> ... <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /...
阅读全文
用SquishIt最小化Css与Javascript文件
摘要:SquishIt 是一个轻易压缩与合并CSS与JavaScript文件的组件。同时它还使用dotless处理css. 它依赖组件是: Dependencies Id Version Range YUICompressor.NET (≥ 1.7.0.0) dotless (≥ 1.2.2.0) AjaxMin (≥ 4.46.4422.26284...
阅读全文
Asp.net MVC3 实现JSONP
摘要:JSONP可以帮我们解决跨域访问的问题。JSONP is JSON With Padding. 这里我们将不再解释其原理。我们来看在ASP.NET MVC 3 如何实现。首先我们需要定义一个JsonpResult. 代码像这样, 直接继承自JsonResult, override了ExecuteResult方法 public class JsonpResult : JsonResu...
阅读全文
Asp.net MVC 3 中 Unobtrusive javascript 与Ajax
摘要:前面的文章我们介绍了jquery.validate.unobtrusive 脚本实现Asp.net MVC3表单验证。这里我们介绍应用jquery.unobtrusive-ajax.js实现的ajax操作.首先确保的是在Web.config中配置节: <add key="ClientValidationEnabled" value="true"/> <add key="Un...
阅读全文
HTML5中custom data-*特性与asp.net mvc 3 表单验证
摘要:前面一篇文章我们介绍了HTML5中custom data-*特性,在Asp.net MVC Web App中原来我们对表单有验证,需要写这个js与Jquery Validation 插件配合, 回顾一下,看下面的代码: <!DOCTYPE html><html><head> <title>LoginWithModel</title> <script src="http://aja...
阅读全文
实现Asp.net MVC中AjaxOnly特性
摘要:Asp.net MVC 应用程序中经常使用ajax操作,一般都是一些action。我们来实现个特性标记当前某个action只支持处理ajax的http请求。 下面直接看代码 /// <summary>/// AjaxOnlyAttribute/// </summary>public class AjaxOnlyAttribute : ActionFilterAttribute{ ...
阅读全文
使用Post/Redirect/Get实现Asp.net防止表单重复提交
摘要:前面的Post有提到解决Web中表单重复提交的方法,实际上表单重复提交的问题不单是Asp.net,其它动态Page都有。让我们看下面的图示: 然后在刷新页面时经常看到提示框在IE中: Google Chrome: Firefox: 最简单的解决方法就是使用Post-Redirect-Get模式,就是Http-Post完后,马上做...
阅读全文
Asp.net MVC中防止HttpPost重复提交
摘要:重复提交的场景很常见,可能是当时服务器延迟的原因,如购物车物品叠加,重复提交多个订单。常见的解决方法是提交后把Button在客户端Js禁用,或是用Js禁止后退键等。在ASP.NET MVC 3 Web Application中 如何去防止这类HTTP-Post的重复提交呢? 我们可以借助Session,放置一个Token在View/Page上,然后在Server端去验证是不是同一个T...
阅读全文
Asp.net MVC中的ViewData与ViewBag
摘要:在Asp.net MVC 3 web应用程序中,我们会用到ViewData与ViewBag,对比一下: ViewData ViewBag 它是Key/Value字典集合 它是dynamic类型对像 从Asp.net...
阅读全文
Asp.net MVC中使用Razor Generator实现View的单元测试
摘要:Asp.net MVC 3 应用程序中,单元测试对项目的质量意义重大。除了对Model,Controller进行单元测试,有时还需要对View也进行。对View进行测试目前并不容易做,大多数情况下可能做的是BlackBox测试。现在可以使用Razor Generator简化对Razor View单元测试。你可以从这里安装 VS2010的扩展。 然后在VIEW上右键属性,...
阅读全文