【问题标题】:How do I tell the MVC middleware that my class is a Controller in ASP.NET Core?如何告诉 MVC 中间件我的类是 ASP.NET Core 中的控制器?
【发布时间】:2020-05-05 08:50:15
【问题描述】:

如何告诉 MVC 中间件我的类是 ASP.NET Core 中的控制器?

根据ASP.NET Core in Action书:

Controllers 是普通的类,尽管它们通常继承自 Controller 基类以提供 访问许多帮助方法,如下面的清单所示。

我认为我们通过从Controller 类继承来告诉 MVC 我们的类是一个控制器。但是现在我发现我错了,Controller 类的继承是可选的。

这意味着还有其他因素使 MVC 中间件将类视为控制器,将它们的方法视为操作方法,因此,使 MVC 中间件根据传入的请求路径检查相应的类和方法。但我无法理解或在互联网上找到这是什么。

【问题讨论】:

    标签: c# asp.net-core controller asp.net-core-mvc


    【解决方案1】:

    我认为很有可能。您不需要从ControllerControllerBase 继承,例如,您可以简单地这样做:

    public class ProductController{}
    

    这里的关键是后缀Controller

    或者您可以使用ControllerAttribute。像这样:

    [Controller]
    public class Product{}
    

    还有其他一些方法可以实现这一点。

    【讨论】:

    • 如果您能指出我在 MSDN 中的某个位置,我将不胜感激。 :)
    • 另外,ControllerAttribute 类位于什么命名空间?
    • 你知道...Controller 后缀是否被记录了吗?
    • @SasukeUchiha 这种做法是“约定优于配置”的一个例子。 Asp.net core 会自动检测你的类作为控制器。
    猜你喜欢
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    • 2019-07-20
    • 2018-05-02
    相关资源
    最近更新 更多