zoukankan      html  css  js  c++  java
  • MVC3 控制器抽离相同的方法 [使某个控制器不处理请求]

    假使我们有这样一个需求,一个MVC网站,已经做好了,但是要求多新增手机端站点。

    这样我们就要添加一个控制器,拿注册来说。里面的业务很多都是一样的。不想复制代码的话,怎么办。

    想到的就是把它们抽离到一个基类。然后遇到下面几个问题

    1.抽离到基类之后,C#是单根继承的,继承了Controller之后就不能再继承基类了。

    解决办法:基类继承自Controller然后,然后控制器再继承该基类,就实现了多重继承。

    例:创建控制器基类 如BaseController 继承自Controller   然后创建注册控制器 RegisterController:BaseController

    2.基类继承自Controller之后,就说明他里面的方法有处理请求的能力了。但是我不希望这个基类可以处理请求。因为处理请求是在它了子类,注册控制器里面。

    解决办法:一开始,我想在方法里面动手脚 比如在基类所有的Action方法里加上[NoAction],在子类再改回来可以处理请求,但是现实告诉我我失败了,后来,就只有在类上面动手脚了。要处理请求的话,必须要该类失例化,怎么阻止该类实例化呢。抽象类。对、只要把基类改成抽象类,里面的方法就不会再处理请求了,因为已经无法例实化了。

  • 相关阅读:
    可视化地图(从省级下钻到市级)
    全国疫情统计可视化地图
    |和||、&&和&
    MFC 常见问题
    * 和-> 优先级
    MFC控件CTabCtrl关联变量
    C++ #include—尖括号和双引号的区别
    C++类型转换
    VC++生成不同的随机数
    VS 2008 头文件库文件设置
  • 原文地址:https://www.cnblogs.com/xdoudou/p/3059744.html
Copyright © 2011-2022 走看看