現在、ASP.NT MVC RC1を使用して、基本的なタイムシートアプリケーションを実装しています。DRYの原則に従いたいのですが、ある特定のケースでは難しいと感じています。
私のビューの1つ、実際には部分ビューには、特定のタスクに費やされた時間数を表す多数のテキストボックスがあり、曜日ごとに1つのテキストボックスがあります。最初にページをロードするときに、ビュー内のテキストボックスにそれらすべての時間の合計を表示する必要があります。さらに、テキストボックスの値を変更するときに、その合計を更新したいと思います。テキストボックスを更新しても完全なポストバックは発生せず、結果に対して何も行わないAJAXポストバックのみが発生します(ポストバックはDBの値を更新しますが、アクション結果はEmptyResultであるため、更新する必要はありません。 UI)。
現在、コントローラーにそのビューの「合計」が入力されたビューを作成させているため、すべての値を追加するロジックはC#コントローラーにあります。UI側では、UIレベルで合計を更新するJavaScriptがあります。しかし、これは良くありません。なぜなら、その合計の計算方法の背後にあるロジックを変更すると、2か所で変更する必要があるからです。AHH!乾かないで!
だから、どうすればこれを行うことができますか?これまでのところ、私が思いついた唯一の答えは、UIで合計を計算するjavascriptコードを破棄し、代わりにAJAXポストバックにそのビューの新しい「合計」を返すようにすることです。
他のアプローチはありますか?