近半年MVC使用后的一些习惯

半年前接新项目, 来了一个前端, 由于只有我前后台都会, 就做业务层+辅助前端显示, 于是我决定使用MVC

上面那句无关紧要的话让我改了好多遍, 转载请注明出处: http://www.cnblogs.com/zaiyuzhong/p/personal-opinions-of-mvc.html

1. 查询条件抽象为一个类

项目中有后台管理, 无非查增删改嘛, 总有一些有很多参数的查询, 比如

  public IEnumerable<Model> Select(各种参数);

我喜欢写成这样:

  public IEnumerable<Model> Select(Model, 增量);

增量常常是 DateTime 类型的, So 你懂我意思.

好处: a. 一个 Model 除了显示列表,添加/修改之外还可以作为查询条件的封装;

    b. 从修改页面跳回列表时可以根据修改后的Model再查找, 不至于跳回列表再重新搜索;

    c. 可以转换为 Select(this T, 增量){ 反射Model属性确定查询条件 } /*一直想这么干来着*/;

扯远了, 现在项目后台不是我做的, 而且接口跨平台不好改成我喜欢那样, 就只有将查询条件抽象为一个类;

好处: a. 查询页View和Controller传数据方便;

    b. 方便一些查询条件的初始值设置;

2. 新增, 编辑合并

这可能和 MVC 没什么关系, 只用 (id == 0) 来区别新增还是编辑, 以调用不同接口;

3. 权限使用 Forms 存在Cookie中挺好, 粒度细可通过反射设置不同Action的权限

参考: http://www.cnblogs.com/legendxian/archive/2010/01/22/1653368.html

4. 禁止浏览器缓存

 1     using System;
 2     using System.Web;
 3     using System.Web.Mvc;
 4
 5     public class NoCacheAttribute : ActionFilterAttribute
 6     {
 7         public override void OnResultExecuting(ResultExecutingContext filterContext)
 8         {
 9             filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
10             filterContext.HttpContext.Response.Cache.SetValidUntilExpires(false);
11             filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
12             filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
13             filterContext.HttpContext.Response.Cache.SetNoStore();
14
15             base.OnResultExecuting(filterContext);
16         }
17     }

NoCacheAttribute

参考: http://stackoverflow.com/questions/1160105/disable-browser-cache-for-entire-asp-net-website

时间: 2024-10-13 15:04:15

近半年MVC使用后的一些习惯的相关文章

使用&lt;mvc:resources&gt;后@Controller无法访问

在使用静态资源<mvc:resources>后可能会无法访问@Controller,找了半天的错误后才发现原来还得在添加这个 <!-- 配置静态目录 --> <mvc:annotation-driven/> <mvc:resources location="/html/" mapping="/html/"/> <mvc:resources location="/back_css/" mappi

近半年的读书总结

近半年的时间里读了不少好书,而大多数书籍其实都与技术沾不上边,是适合所有人去读的.当然这期间也学了一些新的技术,比如看完了Python基础教程,学习了QT的程序开发,也开始准备了解Android移动开发的内容.读了这么多书之后有几点明显的感触: 1.    当你学到了越来越多的知识之后,你会发现自己的力量越来越强大,你会发现很多困难你都没那么怕了(这里的困难不一定指技术上的困难,而是指工作或者生活中的一切困难). 2.    除了技术之外原来还有很多精彩,世界上的很多事情都是有道理可循的,比如说

MVC 登录后重定向回最初请求的 URL FormsAuthentication.RedirectFromLoginPage

在传统的Asp.net webForm 中如果使用 Form身份验证.登录后重定向到最初请求的页面只需使用 FormsAuthentication.RedirectFromLoginPage 但在MVC中,MVC可不吃这一套.试了很多方法都不行.但最终还是搞定了.之所以标题中写到“FormsAuthentication.RedirectFromLoginPage”.是因为我一开始不停的在Google中找“FormsAuthentication.RedirectFromLoginPage”这个关键

近半年数据分析工作的总结----或者说所踩的坑的总结

1. 算法(数学)原理重要不重要? 不重要.因为不懂数学,你也可以把数据扔进Sas,选择一个名字看起来有逼格的算法,然后CPU煎个鸡蛋,结果就出来了.还能配上不明觉厉的图形化结果.更有逼格的,网上搜一下'R/Python  xxxx算法 代码',再吃个煎鸡蛋,结果也出来了.塞到TableAU搞一下,打完收工! /摊手 不重要.因为不同算法,对同一套测试数据来说,结果都差不多.顶多这个算法好一点点,那个差一点点.结果很差说明算法完全不适用. 很重要. 不懂原理,就不会明白算法如何工作,每个参数代表

增加mvc:resources后访问不了注解配置的controller的问题

刚开始没有配置mvc:resourcescontroller能够正确访问,但是由于web.xml使用/拦截了所有的请求,所以静态资源访问不上增加mvc:resources之后,静态资源是能访问上了,但是注解配置的controller却又找不到了 原因是少了 <mvc:annotation-driven />的配置在没有配置mvc:resources的时候没有问题一旦配置了mvc:resources,注解方式的url就没有加载 这种情况下 补上 <mvc:annotation-driven

spring mvc 配置后,web中的html页面报404,该怎么处理

问题描述: 在根目录webapp下的jsp页面可以通过url直接访问,而html页面就会报404错误. 解决方案1: 在spring-mvc.xml中添加如下配置: <!--将静态文件指定到某个特殊的文件夹中统一处理--> <mvc:resources mapping="/**"  location="/"/> 解决方案2: 在web.xml中添加: <servlet-mapping> <servlet-name>de

IIS8发布Asp.net MVC程序后出现404错误,处理程序staticFile

新部署的虚拟机,运行Asp.net MVC程序,出现如下图错误: 解决方法: 添加功能和角色->添加角色->Web服务器IIS->应用程序开发->Asp.net3.5 /Asp.net4.0勾选

nginx网站被持续攻击近1个月后最终防攻击策略

正在上传中--. 预计8月15号前上传完成

MVC发布后项目存在于根目录中的子目录中时的css与js、图片路径问题

加载固定资源js与css <script src="@Url.Content("~/Scripts/js/jquery.min.js")" type="text/javascript"></script><link href="@Url.Content("~/Content/css/shop.css")" rel="stylesheet" type=&quo