Asp.net mvc mvc中要禁用或不禁用的按钮逻辑

Asp.net mvc mvc中要禁用或不禁用的按钮逻辑,asp.net-mvc,design-patterns,Asp.net Mvc,Design Patterns,以下是我正在阅读的一本关于MVC应用程序设计的书的摘录: 理想情况下,视图是如此简单和 逻辑自由,几乎不需要 测试。以前的用户(和开发人员) 用户)可以通过 只需查看屏幕上的像素即可 屏幕。除了纯咖啡还有别的吗 理想情况下,图形渲染应该是 从视图中取出并放置在 控制器和模型。这 包括,例如 确定是否使用某个按钮 此时应启用或灰显 一些要点。 这个大胆的声明对你意味着什么?这是什么样子的 谢谢, 罗德。这就是那句粗体的话对我的意义: 控制器将充满嵌套的if语句 模型(或viewmodel)将充满

以下是我正在阅读的一本关于MVC应用程序设计的书的摘录:

理想情况下,视图是如此简单和 逻辑自由,几乎不需要 测试。以前的用户(和开发人员) 用户)可以通过 只需查看屏幕上的像素即可 屏幕。除了纯咖啡还有别的吗 理想情况下,图形渲染应该是 从视图中取出并放置在 控制器和模型。这 包括,例如 确定是否使用某个按钮 此时应启用或灰显 一些要点。

这个大胆的声明对你意味着什么?这是什么样子的

谢谢,
罗德。

这就是那句粗体的话对我的意义:

  • 控制器将充满嵌套的if语句
  • 模型(或viewmodel)将充满属性,以帮助以特定的方式呈现页面,这使得对象图难以维护
虽然我认为不应在视图中进行分析,但应设置条件,以便按钮只需思考-显示或不显示

如果考生是男性,则仅显示“考生详细信息”按钮

您可以创建viewmodel属性ShowTesteeDetails。视图将检查这是否正确

show考生详情=考生是男性吗

代码应该在控制器中


至于测试,我还没有找到一个应用程序“…实际上不需要测试…”

决定何时启用或禁用按钮的逻辑应该驻留在控制器中,并且只调用一个方法,例如view.EnableContinueButton()来启用/禁用页面上的按钮

启用/禁用页面上按钮本身的实际代码应该在视图中实现,例如EnableContinueButton()方法,该方法调用类似btnContinue.enable()的内容

简单地说,视图应该关注UI细节(显示/隐藏/启用/禁用UI元素),并将所有业务逻辑处理留给控制器。这样,控制器不需要关心UI元素,视图独立于实际业务逻辑工作

e、 在控制器中

public void ProcessOrder()
{
   if (!controller.ValidateOrder(model.OrderNo))
       view.EnableContinueButton(false);
   else
       // Process the order
       ...
}
在我看来

public void EnableContinueButton(bool enabled)
{
    btnContinueButton.Enabled = enabled;
}

坦率地说,我对MVC(不久前在一个项目中实现)没有太多经验,但我希望控制器和视图之间的逻辑分离足够清晰。

请您再详细说明一下不同的代码片段……很抱歉我没有马上得到它。棒。不过我还是明白了“为什么”,谢谢。我添加了一个代码示例,不完全是ASP.NET特有的,但我希望它仍然有用。这看起来像是MVP而不是MVC?!?