c# - 如何在 C# (web) 中集中维护一个数学公式,以便在需要时进行更改?

标签 c# javascript configuration

我们有一个应用程序在页面上进行了大量的数学检查,并根据它为用户提供了一个红绿灯(红色、绿色、黄色)。

绿色 = 他可以继续
红色 = 不要让他继续
黄色 = 允许继续但警告

这些公式对页面上的各种文本字段进行操作。因此,例如,如果 textbox1 有“10”而 texbox2 有“30”...公式可能是:
T1 * T2 > 600 ? “绿色”:“红色

我的问题是:
是否有可能以某种方式集中这些公式?

我为什么需要它?
现在,如果公式有任何变化,我们也必须在服务器端复制变化(违反 DRY,难以维护代码)

一个选择是
- 将(简单)公式存储为配置中带有占位符的文本(?)
- 用 javascript 和服务器端代码中的值替换占位符
- 在 JS 中使用 eval() 进行计算
- 使用技巧概述 here对于 C#

在这种方法中,问题可能是在 JS 和 C# 中对相同数学字符串的不同解释。

我说得有道理还是应该报告这个问题?!! :P

最佳答案

根据您应用程序的要求,仅在服务器上进行所有验证可能是可以接受的。特别是如果您的用户很少,或者他们中的大多数都在相当快的 Intranet 上,您可以“浪费”一些网络调用来避免维护问题。

如果用户希望在每个字段条目(或每隔几个条目,或每隔几秒)之间获得反馈,您可以使用 AJAX 调用请求服务器进行验证,而无需刷新整个页面。

与完全在客户端上进行验证相比,这当然会导致更多的请求,并且如果您的许多用户网络连接不佳,则可能会延迟向他们提供反馈。我的猜测是总带宽使用量大致相同。您在每次验证往返中使用一些,但它们很小。它可能会被您不打算发送给客户的所有验证 JS 所抵消。

主要的好处是维护和 FUD,否则您会保持客户端和服务器验证同步。无需编写验证 javascript 也可以节省时间。

无论如何,可能值得退后一步,问问您的要求是什么。

关于c# - 如何在 C# (web) 中集中维护一个数学公式,以便在需要时进行更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14456049/

相关文章:

c# - WPF 如何在代码中将网格行和列大小重置为 "*"

javascript - 有没有办法测试 html 元素是否可以接受属性?

javascript - 如何使用 JavaScript 配置 DocPad 集合? "warning: The custom collection XYZ is not a valid collection instance"

c# - 从数据行中检索日期时间值 (C#)

c# - 依赖有状态服务来获取配置值?

javascript - 如何将直播数据集成到nodeJS中并表达

javascript - Node.js Express - app.all ("*", func) 在访问根域时不会被调用

java - Android 的每个环境配置

configuration - 中止 : no username supplied (see "hg help config")

c# - 以编程方式从 Outlook 电子邮件中删除附件