【发布时间】:2011-11-13 09:07:30
【问题描述】:
我正在尝试将我的 MVC 项目设置为具有 URL,以便我可以转到:
/组/
/组/注册
/组/随便
但在我的控制器中,我也可以将某些操作标记为仅限管理员,以便在以下位置访问它们:
/管理员/组/删除/{id}
我想保留一个GroupController,并采取行动:
public class GroupController : Controller
{
public ActionResult Index(){
return View();
}
[AdminAction]
public ActionResult Delete(int id){
...
return View();
}
}
允许:
/Groups 是一个有效的 URL。
/Admin/Groups 是一个有效的 URL(但会调用除索引之外的其他操作 - 也许)
/Admin/Groups/Delete/{id} 是一个有效的 URL(仅发布,随便)
/Groups/Delete 是一个无效的 url。
我意识到这可能是一个相当广泛的问题,但我是 MVC 的新手,我不确定从哪里开始寻找,所以如果你能指出我正确的方向,我将不胜感激。
【问题讨论】:
-
为什么不直接设置一个管理控制器呢?如果我理解正确,您想要做的是拥有一些与公共组相关的功能,以及一些仅限管理员使用的功能。设置一个单独的管理控制器来关心管理,并在该控制器级别上设置授权。如果可能,不要混淆不相关的功能。分离关注点之类的东西,如果你想说流行语,但从长远来看真的更简单。
-
对于较小的站点,我同意,但 Group 只是几个控制器之一,我不希望我的管理控制器增长为几十个操作。
-
@Valamas 现在还没有,但我对领域的了解还不够,不知道是否应该这样做。在 MVC3 方面,我是一个初学者。
标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-routing asp.net-mvc-areas