私は非常に単純な「マイクロ Web アプリケーション」を構築しようとしています。私は、バニラ ASP.NET 3.5 (つまり、MVC ではない) である C# in Depth サイトでホストしています。
フローは非常に単純です。
- ユーザーがすべてのパラメーターを指定していない (またはそれらのいずれかが無効な) URL を使用してアプリに入った場合、ユーザー入力コントロールを表示したいだけです。(2つしかありません。)
- ユーザーが必要なすべてのパラメーターを含む URL を使用してアプリに入った場合、結果と入力コントロールを表示したい(パラメーターを変更できるようにするため)
これが私の自主的な要件です(設計と実装の混合):
- 主に、ユーザーがページを簡単にブックマークできるように、投稿で POST ではなく GET を使用する必要があります。
- 送信後に URL がばかげたものに見えて、余分な部分が追加されてしまうのは望ましくありません。メインの URL と実際のパラメータだけをお願いします。
- 理想的には、JavaScript をまったく必要としないようにしたいと考えています。このアプリには正当な理由はありません。
- レンダリング時にコントロールにアクセスし、値などを設定できるようにしたいです。特に、ASP.NET がこれを自動的に実行できない場合、渡されたパラメーター値にコントロールの既定値を設定できるようにしたいと考えています。私にとって(他の制限内で)。
- すべてのパラメーターの検証を自分で行うことができて満足しており、サーバー側のイベントの方法はあまり必要ありません。ボタンなどにイベントを添付する代わりに、ページの読み込み時にすべてを設定するのは非常に簡単です。
これのほとんどは問題ありませんが、viewstateを完全に削除して残りの便利な機能を維持する方法は見つかりませんでした。このブログ投稿の投稿を使用して、ビューステートの実際の値を取得することをなんとか回避できましたが、それでも最終的には URL のパラメーターになってしまい、見栄えが悪くなります。
ASP.NET フォームではなくプレーンな HTML フォーム (つまり、取り出しrunat="server"
) にすると、魔法のビューステートは得られませんが、プログラムでコントロールにアクセスできません。
ASP.NET の大部分を無視し、LINQ to XML を使用して XML ドキュメントを構築し、IHttpHandler
. ちょっとレベル低い気がするけど。
制約を緩和する (たとえば、POST を使用して余剰パラメーターを気にしない) か、ASP.NET MVC を使用することで問題を解決できることはわかっていますが、私の要件は本当に不合理ですか?
たぶん、ASP.NET はこの種のアプリにスケールダウンしないのでしょうか? ただし、非常に可能性の高い代替手段があります。私はただ愚かであり、私が見つけていない完全に簡単な方法があります。
何か考えはありますか?(強大な人がどのように倒されたかなどについてのキュー コメント。それで問題ありません。真実はまったく逆であるため、私が ASP.NET の専門家であると主張したことがないことを願っています...)