问题标签 [controller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2526 浏览

java - 限制对 Spring MVC 控制器的访问——一次 N 个会话

我们已授权商业产品(在此上下文中不重要的产品),该产品受并发用户数量的限制。用户通过 Spring Controller 访问该产品。

我们有该产品的 N 个许可证,如果 N+1 个用户访问它,他们会收到一条关于需要购买更多许可证的令人讨厌的错误消息。我想确保用户看不到这条消息,并且希望对产品的请求只是“排队”,而不是让 N+1 用户实际访问它。当然,他们更愿意我购买许可证,因此他们的工具不会让我们在本地执行此操作。

代替能够控制该工具,我想将与控制器的并发会话数限制为永远不会超过 N。其他人可以等待。

我们正在使用 Spring MVC。

有任何想法吗?

0 投票
2 回答
37515 浏览

asp.net-mvc - .NET MVC - 从另一个控制器操作调用控制器操作

我有一个控制器动作,我想调用另一个控制器动作。

这是一个有效的事情。是否可以?

0 投票
11 回答
6197 浏览

php - 如何将基于页面的 PHP 应用程序转换为 MVC?

一段时间以来,我一直在为如何使用 MVC 框架重新编码基于页面的 PHP 应用程序而苦苦挣扎。仅作为背景,我不得不将应用程序移至 MVC,因为我的老板正在制作我。不管怎样,我坐下来,打印出目录结构。然后我开始尝试计划如何将这些页面转换为控制器/动作对。有些事情看起来很直接。例如,我有几个页面专门用于添加/编辑/删除用户。这很容易创建一个“用户”控制器,并为添加/编辑/删除添加方法或操作。我遇到的问题是决定何时实际创建控制器而不是仅将某些东西作为动作,因为它并不总是那么明确。例如,登录控制器与用户/登录,或注册控制器与用户/注册。大部头书,

另一个例子是,我有大约 12 个用于创建“计划”的表单页面。在我的脑海中,我认为我需要创建一个“计划”控制器,然后每个旧的页面都会变成一个动作。所以我有一个控制器,有 12 个动作(方法)。对我来说,问题是,尽管所有 12 个页面都是数据输入表单,但最终构成了这个“计划”,这就是它们的共同点。每个页面使用数据库中的不同表,并且彼此之间没有任何共同之处。基本上通过创建一个“计划”控制器,我只是将其用作分组机制;不一定要使用它,因为它们彼此相关。至少在上面的“用户”控制器示例中;这些动作中的每一个都使用相同的“

我想这归结为让自己使用控制器作为层次结构实体而不是对象/动作。似乎很容易以错误的方式使用控制器陷入这个陷阱。有人明白我在说什么吗?希望它不会太混乱。

编辑:如果我尝试在每个视图中坚持使用一个控制器;然后,我会将每个请求的代码保持在最低限度。这是最好的方法吗?

编辑:从每个人的说法来看,每个视图一个控制器似乎不符合我的最佳利益。我仍然有些担心,因为控制器似乎很快就会变胖,但这是另一个讨论。我还有一些关于何时决定使用控制器而不是动作的问题。一个很好的例子是堆栈溢出本身。在页面顶部,您有一个“问题”选项,我们可以假设它会将您带到“问题”控制器。我这样说是因为在右侧您可以选择“提问”,URL 指向“问题/提问”。这是有道理的,你使用问题控制器的 ask 方法。让我感到困惑的是,菜单上有“未回答”选项。看起来这本身就有一个控制器。为什么它不像“问题/未回答”那样只是问题控制器下的一个动作?这就是我变得混乱的地方。

0 投票
5 回答
11091 浏览

c# - ASP.NET 控制器基类 User.Identity.Name

本文所述,我创建了一个抽象的基本控制器类,以便能够将数据从控制器传递到 master.page。在这种情况下,我想在我的数据库中查找用户,查询 User.Identity.Name(仅当他登录时)。

但是,我注意到在这个抽象基类中,User属性总是null. 我该怎么做才能让它工作?

非常感谢

0 投票
10 回答
29668 浏览

c# - 为什么我的抽象基本控制器中的用户(如 User.Identity.Name)为空?

我在问一个相关的问题,但把标题弄乱了,没有人能理解。由于我现在能够更准确地提出问题,因此我决定将其重新表述为一个新问题并关闭旧问题。对此感到抱歉。

所以我想要做的是将数据(存储在数据库中的我的自定义用户昵称)传递给 LoginUserControl。这个登录是通过 Html.RenderPartial() 从母版页呈现的,所以我真正需要做的是确保每次调用都存在 ViewData["UserNickname"]。但我不想在每个控制器的每一个动作中填充 ViewData["UserNickname"],所以我决定使用这种方法并创建一个抽象的基础控制器来为我完成工作,如下所示:

这样,无论我的派生控制器做什么,用户信息都已经存在。

到现在为止还挺好。现在解决问题:

我不能调用 User.Identity.Name 因为User已经为空。在我的所有派生控制器中并非如此,因此这是特定于抽象基础控制器的。

我在代码中的另一个位置通过 FormsAuthentication 设置 User.Identity.Name ,但我认为这不是问题 - afaik User.Identity.Name 可以为空,但不是用户本身。

在我看来,HttpContext 不可用(因为也是 null ;-),而且我在这里遗漏了一个简单但重要的观点。谁能给我一些提示?我真的很感激。

0 投票
1 回答
2596 浏览

asp.net - ASP.NET MVC 控制器何时进行垃圾收集?

一旦创建了控制器对象,它何时可用于垃圾收集?

0 投票
3 回答
11781 浏览

c# - 将数据从视图传递到控制器

在 ASP.NET MVC 应用程序中,我正在为管理员制定接受或拒绝新成员的逻辑。我正在显示成员列表和两个按钮接受和拒绝,如下所示:

因此,待处理的成员数据列表位于 MyMember 对象列表中。每个 MyMember 对象都将打印出成员,并为管理员设置了两个按钮来接受或拒绝待处理的成员。

然后,在控制器中,我将这两个输入字段/表单的处理分开,如下所示:

我想直接获取用户按下的按钮旁边的对象。如何将 MyMember 对象从 View 发送到控制器?或者我如何通过按下按钮发送一个数字索引?也许有一个隐藏的领域?

0 投票
5 回答
1607 浏览

ruby-on-rails - if/then/else/RETURN/end 的声明式 ruby​​ 编程替换?

我的控制器中到处都是这个:

及其兄弟:

当我想在一个方法中使用它时,我想把它减少到一个声明行:

显然,如果 require_rights 失败,我不希望执行该方法的其余部分。我发誓有办法做到这一点,但我找不到我在哪里读到它。这是我想象的吗?

0 投票
2 回答
12447 浏览

model-view-controller - 胖模型、瘦控制器和 MVC 设计模式

我刚刚阅读了一篇博客文章,该文章用银行类比解释了 MVC。我有几个月的使用 MVC 框架(CakePHP)开发 Web 应用程序的经验,所以我掌握了基础知识,但我开始看到一个主题,让我认为我在放置逻辑的地方采用了一种有缺陷的方法:

  • 胖模型,瘦控制器
  • 在模型中保留尽可能多的业务逻辑

在我的应用程序中,模型患有厌食症,而控制器则肥胖。我在控制器中有所有业务逻辑,除了模型中的关联和验证规则之外什么都没有。

扫描我的控制器,我现在可以识别出很多应该包含在模型中的逻辑:

  • 该应用程序具有包含项目的列表,并且可以对项目进行排名。将列表按排名顺序排列的排序逻辑位于控制器中。
  • 同样,物品(Item model)也有图像(Image model)。每个项目可能有一个默认图像(由项目表中的 image_id 指定)。当一个项目与它的图像一起显示时,默认图像应该首先出现。我有在控制器中执行此操作的逻辑。
  • 显示列表时,侧栏中会显示相关列表。确定哪些列表相关的逻辑在控制器中。

现在我的问题:

  1. 通过上面给出的示例,我认为这些是当前属于模型的控制器中的逻辑实例,我是否走在正确的轨道上?
  2. Web 应用程序共有的其他一些逻辑领域应该纳入模型中吗?
  3. 我确信发现这个问题并改变我的设计模式是成功的一半,但即使我决定采用上面给出的那些例子并尝试将这种逻辑转移到模型中,我也不知道从哪里开始。任何人都可以通过在此处发布一些代码或链接到一些好的学习资源来为我指明正确的方向吗?CakePHP 的特定帮助会很棒,但我确信任何 MVC 都足够了。
0 投票
1 回答
3102 浏览

.net - Asp.Net MVC 路由表和控制器操作

我正在创建一个包含成员及其个人资料的目录。我在.net 中使用MVC 框架。

我有一个视图允许您根据某些条件查找成员,因此我的控制器有一个 Find() 操作结果,然后是另一个接受后置动词的视图。因此,somesite.com/members/find 会显示搜索工具,然后一旦提交表单,相同的 url 就会显示结果。我现在希望成员名称链接到同一控制器中的另一个 actionresult 方法以显示他们的个人资料,并且我希望 url 遵循此模式 somesite.com/members/{username}。

我如何创建一个控制器方法来做到这一点?还有比这更多的吗?
我需要在 global.asax 中绘制新路线吗?

谢谢您的帮助。