微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当逻辑需要C#和Javascript实现时,如何保持DRY?

我目前正在使用ASP.NT MVC RC1来实现基本的时间表应用程序.我想遵循DRY原则,但在一个特定情况下发现它很困难:

我的观点之一,实际上是部分视图,有许多文本框,表示在特定任务上花费的小时数,一周中每天一个文本框.当我最初加载页面时,我希望视图中的文本框显示所有这些小时的总和.另外,我希望在更改文本框中的值时更新总计.文本框的更新不会导致完整的回发,只有一个AJAX回发不对结果做任何事情(回发更新数据库上的值,但返回ActionResult是一个EmptyResult,因为我没有什么需要更新的UI).

目前我让控制器创建一个视图,该视图使用该视图的“total”填充,因此添加所有值的逻辑位于C#控制器中.在UI方面,我有javascript更新UI级别的总数.但这并不好,因为如果我改变计算总数的逻辑,我必须在两个地方改变它! AHH!不要干!

那么,我该怎么做呢?到目前为止,唯一的答案是废弃在UI上计算总数的javascript代码,而是让AJAX回发返回该视图的新“总计”.

还有其他方法吗?

最佳答案
在C#和Javascript中总计时间的逻辑在严格意义上并不是DRY,这是事实.人们可能会因为它们是在两个不同的环境中运行的两种不同语言这一事实​​而分道扬,但在一天结束时,如果你改变一种,你必须改变它们.

我认为这是形式和功能间的权衡.拥有javascript有多重要?如果AJAX调用太慢(真实可能),那么可能是时候认识到DRY原则是指导原则,而不是法律.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐