mvc3:建议控制器结构

时间:2011-06-28 07:33:42

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-routing

我盯着习惯MVC,经过几个小小的学习项目后,我现在准备好吃更多的东西了。

我希望研究这样的结构。
/管理/指数
/管理/用户/制作:阅读:更新:删除:列表
/管理/新闻/制作:阅读:更新:删除:列表

考虑到最后两个,我想我应该有控制器 管理员
管理用户
管理新闻

...而且我应该将视图存储在这些文件夹中 /浏览/管理
/浏览/管理/用户
/ Views / Admin / News

以上听起来不错吗?

最后,我如何设置这些路线来击中那些控制器?

我尝试了类似这样的功能。

routes.MapRoute(
    "Admin/User", // Route name
    "/Admin/{controller}/{action}/{id}", // URL with parameters
    new {controller = "AdminUser", action = "Index", id = UrlParameter.Optional} // Parameter defaults
    );

4 个答案:

答案 0 :(得分:1)

  

我盯着习惯MVC,经过几个小小的学习项目后,我现在准备好吃更多的东西了。

如果您开始学习asp.net mvc,并尝试实施管理面板,我会建议“区域”。看看Walkthrough: Organizing an ASP.NET MVC Application using Areas

答案 1 :(得分:1)

我会使用区域功能。

看到这个:

  • 管理
  • ADMINUSER
  • AdminNews

让我觉得你可以添加一个 Admin 区域,并在该区域下面有单独的控制器。然后您的网址将是/ Admin / User和/ Admin / News等。

答案 2 :(得分:1)

我同意这些区域可能是您可能想要查看的内容,因为它非常适合管理类型区域,并且网络上有大量示例。

但是,如果你没有沿着那条路走下去,那就稍微回答一下你的问题。

首先。视图将位于文件夹中:

Views/Admin
Views/AdminUser
Views/AdminNew

二。路径只需要是项目中首次设置的默认路径 即

{controller}/{action}/{id}

其中操作将是Admin,AdminUser和AdminNew控制器公开的方法。

要获得您提到的路由,您可以执行以下操作:

routes.MapRoute(
"AdminUser",
/Admin/User/{action},{id},
new {controller = "AdminUser", action = "Index", id = UrlParameter.Optional}
);

同样对于新闻。对于管理员,我相信默认路线会抓住它。

希望有所帮助。

答案 3 :(得分:0)

你也可以使用一个区域作为管理部分。