我可以将自定义类设置为 ASP.NET MVC3 中控制器的默认基类吗?

发布于 2024-10-17 09:23:23 字数 132 浏览 8 评论 0原文

我想从我自己编写的自定义基类继承所有控制器。每次添加新控制器时我都可以更改该行,但如果我可以在某处指定在那里设置的默认值,那就更好了。这样我就不需要担心忘记这一点,并且以后添加到该项目的其他人也会更轻松。

有什么办法可以实现这一点吗?

I'd like to inherit all my controllers from a custom base class that I write myself. I can change the line every time I add a new controller, but it would be nicer if I could somewhere specify the default value that gets set there. That way I wouldn't need to worry about forgetting this, and other people who get added to the project later on would have an easier time.

Is there any way to achieve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

感悟人生的甜 2024-10-24 09:23:23

您可以自定义调用“添加控制器”操作时使用的 T4 模板。基本上,您必须从 C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC 3\CodeTemplates\AddController\Controller.tt 复制模板到项目文件中的“~\CodeTemplates\AddController\Controller.tt”。

更多信息可用 此处(向下滚动到“添加和自定义脚手架模板”)

You can customize the T4 template that gets used when the Add Controller action gets invoked. Basically you would have to copy the template from C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC 3\CodeTemplates\AddController\Controller.tt to '~\CodeTemplates\AddController\Controller.tt` in your project file.

More info available here (scroll down to "Adding and Customizing Scaffold Templates")

み零 2024-10-24 09:23:23

您可以使用命名空间来执行此操作:在与控制器相同的命名空间中创建一个名为 Controller 的类,例如:

namespace UI.Controllers
{
    public class Controller : System.Web.Mvc.Controller
    {
        //Code here
    }
}

然后对 Controller 的标准非限定引用将引用您的基类而不是 System.Web.Mvc.Controller 类。

不过可能会令人困惑 - 我宁愿只需要记住引用基类。

You could do this using namespaces: create a class called Controller in the same namespace as your controllers, e.g.:

namespace UI.Controllers
{
    public class Controller : System.Web.Mvc.Controller
    {
        //Code here
    }
}

and then the standard unqualified references to Controller will reference your base class instead of the System.Web.Mvc.Controller one.

Might get confusing though - I'd rather just have to remember to reference the base class.

放肆 2024-10-24 09:23:23

是的,这是一项容易完成的任务。首先创建一个名为“BaseController”的类,例如它继承自Controller。然后你的所有控制器都将从 BaseController 继承。

编辑:我认为使用 T4 模板生成服装控制器(称为 BaseController 或控制器 - 无论您喜欢哪个)也可以。我见过斯科特·汉塞尔曼(Scot Hanselman)在他的一次演讲中做了类似的事情。

Yup that's an easy task to do. First create a class called "BaseController" for example which inherits from Controller. Then all your controllers would inherit from BaseController.

EDIT: I think that using a T4 template to generate your costume controller (called BaseController or maybe Controller - whichever you prefer) would also work. I've seen Scot Hanselman do something similar in one of his talks.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文