将MVC控制器映射到视图的最佳实践?

时间:2010-09-17 16:33:26

标签: c# .net asp.net asp.net-mvc asp.net-mvc-2

将控制器映射到视图时,最佳做法是什么?例如,假设为url mysite.com/login和mysite.com/register...I可以将我的LoginController和RegisterController映射到Login / Index.aspx和Register / Index.aspx视图。或者,我的HomeController可以处理这两个并将它们映射到Home / Login.aspx和Home / Register.aspx。

一个人比另一个“更好”吗?

4 个答案:

答案 0 :(得分:0)

登录和注册看起来像可以放在同一控制器中的相关操作。帐户控制器也许?

更好的是,我相信维护一个处理类似或相关操作的控制器而不是拥有多个控制器会更容易。我不确定哪种方式被认为是“正确”的方式。也许只是个人偏好?

答案 1 :(得分:0)

在这个特殊情况下,我会建议两个不同的控制器和路由,因为登录和注册是单独的问题。

您的网址也因更具可读性而受益。 IE - mysite.com/login/和mysite.com/register /

答案 2 :(得分:0)

上周我也经历了这种困境。我最终在家庭控制器下放置了登录,注册和购物车等PUBLIC视图,以及在帐户控制器下放置私人视图,如我的个人资料,愿望清单,订单历史记录,地址簿等。

为什么只为处理公开页面的同一控制器中的经过身份验证的用户混合视图?

这是我的逻辑。

答案 3 :(得分:0)

这是一个选择问题。有些人反对控制器中有很多代码。他们要求你尽量保持简约。添加新控制器不会以任何方式影响您的应用程序。如果您有多个操作或具有新控制器将不会影响性能。 以下是我所遵循的内容:如果您对每个页面都有不同的操作(例如在登录和注册页面中),则将它们放在一个单独的控制器中,将它们组合在一起。 说登录你有以下行为verifyInput,forgotPassword,login,incorrectLogin等。 并注册verifyInput,regenerateCaptcha,createAccount,sendMail等。

在这种情况下,你肯定应该有两个控制器