2011-06-28 27 views
0

我正在盯着习惯MVC,经过几个小小的学习项目,我现在已经准备好大吃一口了。mvc3:建议控制器结构

我正在寻找像这样的结构。
/管理/指数
/管理/用户/制作:阅读:更新:删除:列表
/管理/新闻/制作:阅读:更新:删除:列表

鉴于过去两年,我想我应该有控制器
联系
ADMINUSER
AdminNews

...那我应该有存储在这些文件夹视图
/浏览/管理
/浏览/ A dmin /用户
/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 
    ); 

回答

1

我正在盯着习惯MVC,经过几个小小的学习项目,我现在已经准备好接受更大的咬合了。

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

+0

非常感谢您的信息和链接。我下载了示例解决方案,这正是我所需要的。 –

0

您还可以使用管理部分的区域。

1

我会用地区的功能。

见此情景:

  • 联系
  • ADMINUSER
  • AdminNews

使我认为,你可以添加一个管理员面积并有在该区域下面单独的控制器。然后你的网址将/管理员/用户和/管理/新闻等

1

我同意,可能需要考虑的领域,因为它是管理类型区域的理想选择,并有大量的例子在网络中。

但是,如果你不走那条路线,那么有点回答你的问题。

首先。意见将在文件夹中:

Views/Admin 
Views/AdminUser 
Views/AdminNew 

二。该路线仅需要是项目 i中首次设置的默认路线。e

{controller}/{action}/{id} 

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

有你提到你可以做类似的路由:新闻

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

并且同样。对于管理员,我相信默认路线会抓住这一点。

希望有所帮助。