zoukankan      html  css  js  c++  java
  • 近半年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

  • 相关阅读:
    解析三种常见分布式锁的实现
    RabbitMQ基础概念详解
    数据库事务概念
    ECIF与CRM
    MQ(消息队列)学习
    数据粒度的设计
    链表之 头节点与尾指针 区别
    牛客之错题(2016.1.15) && 带头节点与不带头的区别
    数据结构之递归回溯算法
    LeetCode--Single Number
  • 原文地址:https://www.cnblogs.com/zaiyuzhong/p/personal-opinions-of-mvc.html
Copyright © 2011-2022 走看看