首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC -区域和控制器混淆

MVC -区域和控制器混淆
EN

Stack Overflow用户
提问于 2014-08-14 10:27:38
回答 3查看 586关注 0票数 1

我正在Visual中设计一个MVC 5 web应用程序。我在项目中添加了一个区域,它将包含特定于管理员角色中的用户的功能。

但是,管理员和默认用户都需要类似的功能和视图。例如,以这个为例

代码语言:javascript
复制
MyProject --> Controllers --> MyController --> MyActionResult
MyProject --> Areas --> Admin --> Controllers --> MyController --> MyActionResult

两个控制器文件夹都包含一个ActionResult,它包含相同的逻辑,并返回相同的视图。视图将返回一个部分视图,它可以重用,因此有助于DRY (不要重复自己)原则,但是,我想知道以下几点

  1. 如果两个ActionResult方法具有相同的逻辑并返回相同的视图,那么是否需要这两种方法?违反干法原则等?
  2. 当管理员需要访问这个特定的方法时,如果它们被定向为toMyProject ->控制器-> MyController -> MyActionResult,会更好吗?

并将此方法设置为允许访问管理员。

代码语言:javascript
复制
[Authorize(Roles="Administrator")]
public ActionResult MyActionResult(int id)
{

}
  1. 或者这是否是某种违反,即管理员角色中的用户只应该在为特定于他们的功能设置的区域内查看页面?

与此相关的任何帮助或建议都会得到极大的认可,我们总是努力遵循我们开发团队中的最佳实践。

谢谢大家。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-14 11:49:22

我喜欢我的领域是域或子域特定的-而不是用户或安全特定。正如您已经提到的那样,用授权注释注释您的方法/类。

代码语言:javascript
复制
If both ActionResult methods have the same logic and return the same View, then is there a need for both methods? Violation of DRY principle etc?

我会说不,你不需要两者都需要,这违反了干法

代码语言:javascript
复制
Would it be better if when the Administrator needed to access this particular method, they were directed to

    > MyProject --> Controllers --> MyController --> MyActionResult

当然,我认为这样做更好,也是最好的做法

代码语言:javascript
复制
Or is this some kind of violation, i.e., the users in Administrator role should only be viewing pages within the Area that was setup for functionality specific to them?

不行。我们总是有粒度的安全域和子域。使用授权批注控制访问。

票数 1
EN

Stack Overflow用户

发布于 2014-08-14 10:46:14

如果我正确地理解了这个问题,我将考虑一个基本控制器,它包含共享功能,并且附加的代码可以添加到管理区域控制器中。

关于这个视图,我只使用一些c#/vb代码来显示某些代码,如果用户是管理员的话。

例如:

代码语言:javascript
复制
@if (Roles.IsUserInRole( "Administrator" ) )
票数 0
EN

Stack Overflow用户

发布于 2014-08-14 11:52:44

使用一个公用区域,它实际上不是路由到多个区域,而是包含多个区域共有的功能。您可以将共享视图保存在那里,并通过继承共享控制器方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25305827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档