• MVC3 控制器抽离相同的方法 [使某个控制器不处理请求]


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

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

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

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

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

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

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

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

  • 相关阅读:
    获取android手机内所有图片
    进程、线程与任务程序之间的关系
    wife的简单使用(一个简单的例子)
    [转载]mode_t等系统数据类型
    双调欧几里得旅行商问题
    HDU OJ分类
    CLRS2.4__逆序对
    [转载] Android 2.3.3 API 读取通讯录中电话号码的实例
    [转]有关TinyXML使用的简单总结
    ARG_MAX问题
  • 原文地址:https://www.cnblogs.com/xdoudou/p/3059744.html
Copyright © 2020-2023  润新知