読者です 読者をやめる 読者になる 読者になる

アーキテクチャMVCに役割分担されてなくてASPの仕組み的にViewとControllerを分割させるのが簡単にいかない処がリファクタリングを難しくしているのですが、ともかくこのままcontroller的なアーキテクチャなしでpostbackを実装するとinputとconfirmのそれぞれが自分で独自制御用のコードを必要とするという点がなんにも解消されずにまた頓挫するので、ここだけでも擬似的にMCとVを独立させるべ、と言うことで、View機能のないcontroller.aspを新規に追加して、inputとconfirmからのpostはすべてこのcontrollerに投げた上で、controller側でsessionへの値格納とコマンドによる宛先actionへのRedirectを受け持つような新しいアーキテクチャを構成してみた感じ。

アーキテクチャの再設計例


PHPのZend_Frameworkだとcontrollerはinput/confirm/resultを内包できるのでpostbackは自分に投げれば良いのですが、ASPでそれを擬似的に再現するため、独立したcontroller.aspを作成して各actionはcommandをpostとしてcontroller.asp宛てに投げて、次に遷移する画面はcommandを元にcontroller.aspが決めるという構成。
こうすれば、各actionは独自に画面遷移を考える必要が無くviewだけに注力できるし、一度でもinputからpostすればサーバ側に値が保存されるのでブラウザの戻るボタンだろうがconfirmからのbackコマンドだろうが常に入力値の保持が可能という要件も実現できるというアレです。