Asp.net mvc 如何命名Asp.net Mvc控制器?

Asp.net mvc 如何命名Asp.net Mvc控制器?,asp.net-mvc,Asp.net Mvc,我有点困惑什么时候我应该做一个新的控制器,好像每次我做一个按钮,去某个地方,我需要做一个新的控制器,以获得正确的路径名称 例如,在这个场景中,我有一个signIn控制器 这个控制器会 1. Login view 2. RestPassword view 3. CreateAccount view 因此,如果他们单击login,他们将转到其他控制器(我们称之为AccountController),因此这将包含所有帐户视图和内容 那么RestPassword视图呢?当它保留用户密码时,我希望它转到

我有点困惑什么时候我应该做一个新的控制器,好像每次我做一个按钮,去某个地方,我需要做一个新的控制器,以获得正确的路径名称

例如,在这个场景中,我有一个signIn控制器

这个控制器会

1. Login view
2. RestPassword view
3. CreateAccount view
因此,如果他们单击login,他们将转到其他控制器(我们称之为AccountController),因此这将包含所有帐户视图和内容

那么RestPassword视图呢?当它保留用户密码时,我希望它转到一个页面,向他们显示它成功了(大多数站点似乎都这样做,例如asp.net站点,如果您输入电子邮件地址,它将转到另一个页面,并告诉您新密码已发送)

那么现在它应该是另一种观点吗?控制器

如果它是一个视图,那么路径将如下所示

http://www.site.com/signIn/EmailForgottenPassword
在我看来什么样的东西很奇怪

如果我做一个新的控制器,我就可以

http://www.site.com/EmailForgottenPassword
对我来说,什么看起来更好,但这个控制器中只有一个视图

另一个例子是在这个sigIn页面上有一个createaccount按钮。现在,单击此按钮将转到另一个页面,该页面包含不同帐户的列表

这也应该是一个新的控制器吗?当帐户在此新页面上列出时,它们都链接到一个注册控制器,其中包含许多视图

所以它就像
SignController->RegistrationController->RegistrationController.

这可能会得到一些不错的链接

所以就像我说的,似乎要得到很好的链接,你需要不断地制作一个又一个新的控制器


所以我肯定错过了什么。

事实上,你从来都不需要一个以上的控制器。单独的控制器只是分离关注点的方法。换句话说,OO设计范式促使我们在逻辑上将代码划分为模块,但您没有到-所有东西都可以在一个控制器中

您真正需要的是为您想要处理的每种不同类型的请求提供一个单独的控制器操作。也就是说,您需要一个向路由表公开的控制器方法,可以通过键入一些URL和/或提供一些GET或POST数据来调用该方法。然后,该方法决定向用户显示什么(视图)

此外,通过修改Globals.asax中的路由表,您可以使任何URL指向任何控制器或控制器操作


您可能对我的答案有更具体的问题-请发布它们,我将在中编辑它们。

事实是,您实际上从来都不需要一个以上的控制器。单独的控制器只是分离关注点的方法。换句话说,OO设计范式促使我们在逻辑上将代码划分为模块,但您没有
到-所有东西都可以在一个控制器中

您真正需要的是为您想要处理的每种不同类型的请求提供一个单独的控制器操作。也就是说,您需要一个向路由表公开的控制器方法,可以通过键入一些URL和/或提供一些GET或POST数据来调用该方法。然后,该方法决定向用户显示什么(视图)

此外,通过修改Globals.asax中的路由表,您可以使任何URL指向任何控制器或控制器操作


关于我的答案,你可能有更具体的问题-请发布它们,我将在中编辑它们。

如果你遵循坚实的原则,那么你应该非常具体地命名它们。如果您使用的是ASP.NETMVC2,那么我会将主要部件放入“区域”,然后给控制器起好名字。让你的网址快乐

如果你遵循坚实的原则,那么你应该非常具体地命名它们。如果您使用的是ASP.NETMVC2,那么我会将主要部件放入“区域”,然后给控制器起好名字。让你的网址快乐

在您的特定情况下,一个控制器就足够了。我将其命名为AccountController,并向其添加以下操作

  • 登录
  • 注销
  • 创造
  • 创建确认
  • 重置密码
  • 重置密码确认
然后,对于那些需要确认屏幕的,可以使用


至于名字。通常,您希望使用名词表示控制器,使用动词表示这些控制器上的操作。这样你可以得到很好的可读性的网址,这是有意义的。对于名词,您可以选择控制器处理的逻辑/业务术语(比技术术语更好)。因此,帐户、客户、产品、博客帖子等。

在您的特定情况下,一个控制器就足够了。我将其命名为AccountController,并向其添加以下操作

  • 登录
  • 注销
  • 创造
  • 创建确认
  • 重置密码
  • 重置密码确认
然后,对于那些需要确认屏幕的,可以使用


至于名字。通常,您希望使用名词表示控制器,使用动词表示这些控制器上的操作。这样你可以得到很好的可读性的网址,这是有意义的。对于名词,您可以选择控制器处理的逻辑/业务术语(比技术术语更好)。因此,帐户、客户、产品、博客帖子等。

您可以添加一个路由,将/Registration/EmailForgottenPassword路由到simply/EmailForgottenPassword,如果您需要保持URL干净,您可以添加一个路由,将/Registration/EmailForgottenPassword路由到simply/EmailForgottenPassword,如果您需要保持URL干净的话