問題
ユーザーへの出力を生成するためにWebサイトからの動的データを必要とするページがいくつかあります。
簡単な解決策は、データを生成し、最初のページからデータを取得してユーザーに表示するGUIとして機能する別のhtmlページを作成するaspx(php、...)ページです。このメソッドでは、たとえばform1.aspxやデータページform1.json.aspxなどのGUIページを呼び出すことができます。私は個人的にこの方法が好きですが、そのためのコンポーネントを作成する場合には適していません。
現在使用している別の方法は、同じGUIページ呼び出しをクエリ文字列で使用してデータを取得することです。このページはそのクエリ文字列をチェックする必要があり、存在する場合は、データを生成し、ページから他のすべてを削除するだけです。このメソッドの例として、ページform1.aspxを呼び出す場合、データを取得するには、form1.aspx?JSONのように呼び出す必要があります。
これが私がしていることの例です:
protected void Page_Load(object sender, EventArgs e) {
if (Request.QueryString.ToString().IndexOf("JSON") == 0){
this.Controls.Clear();
Response.Clear();
// send pure data to client
} else {
// render page as GUI
}
}
ただし、マスターページを追加したり、テンプレートページからページを継承したりすると、この方法は煩雑になります。マスターページはでのみ削除でき、Page_PreInit
それによって別のメソッドが追加されます。
セキュリティ制御は別の問題を引き起こします。セッションが期限切れになるまでユーザーがページを長時間開いたままにすると、データを取得しようとして失敗し、セキュリティモジュールが要求をログインページにリダイレクトします。
次の問題は、ページでの変更(マスターページの削除、ページコンポーネントのクリアなど)が必要なため、コンポーネントをパッケージに統合できないことです。
私が探しているもの:
1-自分のページを呼び出して純粋なデータ(JSONまたはXML形式)を取得できるソリューションを探しています。そうすることで、データを生成するサーバー側のメソッドを実行するので、他のデザイナーが何を置くかについて心配する必要はありません。マスターページまたはテンプレートで。
2-拡張機能を使用してこれを行うことは可能だと思いますがaxd
、それについての手がかりがなく、役立つドキュメントも見つかりませんでした。
3-これを行うためのより良い方法はありますか?これを改善するための提案や解決策は大歓迎です。