View 表示逻辑还是业务逻辑?

View 表示逻辑还是业务逻辑?,view,business-logic,View,Business Logic,假设我的html页面中有三个按钮。第一个按钮用于选择汽车,第二个按钮用于租赁汽车,下一个按钮用于支付租金。所有这三个按钮都发出ajax请求,以在服务器中执行一些业务逻辑。当用户按下第一个按钮且ajax请求正常时,我启用第二个按钮并禁用de第一个按钮,第二个和第三个按钮也是如此。默认情况下,禁用所有按钮。如果ajax请求正常,则在javascript中启用或禁用。我认为启用或禁用按钮或权限是业务逻辑,不应该出现在视图中,而应该出现在服务器中。我的意思是,根据用户已经完成的操作,发出ajax请求以获

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


非常感谢

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

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

根据服务器在
响应
对象中返回的数据,可以控制下一步按钮是否显示在HTML中。

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

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

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

我有两个答案:

  • 使用ajax请求来获取可用的状态转换是完全合理的。你把这当作是权限来谈论,但事实并非如此。权限是根据允许用户执行的操作而不同的用户状态。这就是基于业务规则的特定状态下操作的有效性,这是一件有请求获取的好事情

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


    • 我有两个答案:

      • 使用ajax请求来获取可用的状态转换是完全合理的。你把这当作是权限来谈论,但事实并非如此。权限是根据允许用户执行的操作而不同的用户状态。这就是基于业务规则的特定状态下操作的有效性,这是一件有请求获取的好事情

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