演示逻辑或业务逻辑?

时间:2017-09-28 19:42:52

标签: view business-logic

假设我的html页面中有三个按钮。第一个按钮用于选择汽车,第二个按钮用于租用汽车,下一个按钮用于支付租金。所有这三个按钮都会产生一个ajax请求,以便在服务器中执行一些业务逻辑。当用户按下第一个按钮并且ajax请求正常时,我启用第二个按钮并禁用第一个按钮,第二个和第三个按钮相同。默认情况下,所有按钮都被禁用如果ajax请求正常,则启用或禁用javascript。我认为启用或禁用按钮或权限是业务逻辑,应该不在视图中而是在服务器中。我的意思是,根据他已经完成的操作,制作一个获取用户权限的ajax请求会不会更好?

非常感谢

2 个答案:

答案 0 :(得分:1)

如果您希望服务器端代码决定是否显示下一个按钮,您可以执行以下操作:

$.get("/api/yourController/yourMethod")
    .success(function (response) {
        if (response == true){ //change this for your unique decision logic
            // execute show button code
        }
    });

根据您在response对象中从服务器返回的数据,您可以控制下一个按钮是否出现在HTML中。

答案 1 :(得分:1)

我有两个答案:

  • 有一个ajax请求来获取可用的状态转换是完全合理的。你说这就好像它是权限,但那不是真的。权限是根据用户允许执行的操作而在用户之间存在差异的状态。这是基于业务规则给定特定状态的操作有效,这对于获取请求是一件好事。

  • 也就是说,当你使用AJAX时,在客户端和服务器上都有MVC模式是很常见的。也就是说,除了视图逻辑之外,HTML页面中还有一些视图和控制器逻辑。此逻辑实现了一些业务规则。 Angular和其他客户端框架使这样的模式明确。在这样的应用程序中,服务器视图层很薄。确保在您的服务器中实施重要的业务规则以使攻击者无法破坏客户端上的规则仍然很重要。在这样的应用程序中,只要服务器确保您没有选择租用或支付汽车费用,在客户端启用按钮是完全合理的。