当逻辑需要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原则是指导原则,而不是法律.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...