私たちのサイトは、"Start.aspx" と呼ばれる 3 つのメイン ページと、その中にあるコンテンツ iframe で構成されており、ユーザーはサイトのほぼすべての操作を行います。
しかし最近、さまざまな製品の Start.aspx ページ間をジャンプし、コンテンツ iframe を指定されたページに自動的に変更する機能を実装する必要がありました。
実際の機能は問題なく動作しますが、問題は完全なクエリ文字列が公開されていることです。すべてのページをコンテンツ iframe に読み込むため、通常のサイト使用中、ページ URL は "Product/Start.aspx" のままです。
ただし、この新しい機能はクエリ文字列を Start.aspx (要求されたページをコンテンツ iframe に読み込むための適切なパーサーを備えています) に渡しているため、その URL を "Start.aspx" のままにしておく必要があります。
これまでのところ、各製品のランディング ページが "[Product]/Start.aspx" であるため、エラーをスローしていたURL Rewriting について調査しました。別のURL 書き換えソリューションと、ScottGu のルーティングに関するブログ投稿を見てきました。
問題は、これらのソリューションがナビゲーションを簡素化するために使用されているように見えることです。たとえば、「Blogpost.aspx?Year=2013&Month=07&Day=15」を「Blogpost.aspx/2013/07/14」に変換しますが、実際にはそうではありません。私たちが何をしようとしているのか。URL によるナビゲーションを簡素化しようとしているのではなく、クエリ文字列を完全に隠そうとしているだけです。
コンテンツ iframe に最初のクエリ文字列から必要なものが含まれたら、"[Product]/Start.aspx?frame=Company.aspx?id=1570" を "[Product]/Start.aspx" に変換します。すべてのページを考慮する必要はありません。それが包括的なルールである必要があるだけです。90% の時間は問題にはなりません。ユーザーが製品を切り替えるだけで、行われている作業のほとんどが製品から製品にジャンプしないためです (これは、特に "Response.Redirect(" を使用する方法で行われます)。 [製品]/Start.aspx")".
コンテンツの iframe が Querystring パラメータから読み込まれると、それらはもう必要ありません。残りの機能は問題なく iframe を介して実行されます。
私はこれを考えすぎていますか、それとも実際には実現不可能なことを求めていますか?