Asp.net mvc URL如何匹配MVC中的控制器类?

Asp.net mvc URL如何匹配MVC中的控制器类?,asp.net-mvc,Asp.net Mvc,假设我创建了一个名为Login的控制器,IDE会生成一个类似 Public Class LoginController Inherits System.Web.Mvc.Controller ' ' GET: /Login Function Index() As ActionResult Return View() End Function End Class 因此,当我运行我的应用程序并输入以下URL时 http://localhost:

假设我创建了一个名为Login的控制器,IDE会生成一个类似

Public Class LoginController
    Inherits System.Web.Mvc.Controller
    '
    ' GET: /Login
    Function Index() As ActionResult
        Return View()
    End Function
End Class
因此,当我运行我的应用程序并输入以下URL时

http://localhost:49599/Login

控制器启动,视图被服务,等等。但是“登录”这个词连接到这个LoginController类了吗?如果我想选择使用不同的语言,并且我想将“Login”更改为“Logzmein”,会发生什么。我怀疑某个地方应该涉及到资源文件。

这是ASP.NET MVC基于约定的设计的一部分。默认情况下,存在定义的默认路由,用于将URL路由(或转换)为控制器操作方法

默认情况下,使用以下约定定义管线:

{controller}/{action}/{id}
因此,给定如下URL:

User/View/1
它是这样分解的:

User/View/1
User
{controller}
)映射到
UserController
控制器类

User/View
{controller}/{action}
)路由到
UserController.View
操作方法

User/View/1
{controller}/{action}/{id}
)路由到
UserController.View
action方法,作为
id
参数传入
1

您还可以定义自定义布线来创建自己的布线模式


请查看概述或路由,因为一篇文章中涉及的内容太多。

所以按照惯例,“Controller”一词总是作为类名的一部分使用?是的,没错。这是ASP.NET MVC约定的一部分。通过使用
Controller
和特定文件夹(在
Controllers
文件夹下)命名类,MVC将根据这些默认路由找到它们。