是否可以在ASP.net项目上重命名ValuesController类?

是否可以在ASP.net项目上重命名ValuesController类?,asp.net,model-view-controller,Asp.net,Model View Controller,我是C#/ASP.net开发新手,请记住这一点。我正在关注这个 例如: 这将在Controllers/ValuesController.cs中生成一个文件。它包含一个名为ValuesController的类,该类具有许多公共方法。当我在调试器中运行代码时,它成功地处理对的HTTP请求。因此,我尝试将ValuesController重命名为ValuesController 2(甚至尝试重命名.cs文件)。但该代码仅在该类名为ValuesController时有效。我的问题是:这是在ASP.net中

我是C#/ASP.net开发新手,请记住这一点。我正在关注这个

例如:


这将在Controllers/ValuesController.cs中生成一个文件。它包含一个名为ValuesController的类,该类具有许多公共方法。当我在调试器中运行代码时,它成功地处理对的HTTP请求。因此,我尝试将ValuesController重命名为ValuesController 2(甚至尝试重命名.cs文件)。但该代码仅在该类名为ValuesController时有效。我的问题是:这是在ASP.net中硬编码的吗?如果是,我找不到它的任何文档。如果不是,我无法解释这种奇怪的行为。

按照惯例,所有控制器名称都应该以
controller
结尾

如果将其重命名为
Values2Controller
,则不会出现任何问题。只要确保它有
控制器
后缀即可


您的URL也应该从
api/values
更改为
api/values2

系统如何选择要使用的控制器的文档,并提供更多信息。我尝试将控制器命名为Values2Controller,但它也不起作用,即使它所在的文件名为Values2Controller.cs。控制器必须命名为ValuesController。为什么会这样?我的代码中没有对ValuesController的引用。到底是什么不起作用?你不能点击任何控制器动作?如果没有,您还必须更改
https://localhost:44315/api/values
https://localhost:44315/api/values2
@GusMueller我们一直在使用Web API。我可以向你保证,我们的代码中没有名为“ValuesController”的控制器,还有很多其他名称。问题出在哪里并不直观,Ciubotariu Florin因为为我指明了正确的方向而获奖。似乎当类名为ValuesController,路由装饰器(就是这个吗?)是[route(“api/[controller]”)时,就会转到ValuesController。如果所有其他内容都相同,但控制器名为Values2Controller,则url为。看起来把路线映射到控制器是一种我没有预料到的非常固执己见的方式。很高兴听到你解决了这个问题。如果我的答案对你有帮助,你能把它标为“正确”吗?