1

問題

ユーザーへの出力を生成するために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-これを行うためのより良い方法はありますか?これを改善するための提案や解決策は大歓迎です。

4

2 に答える 2

2

他の方法は、HTTPハンドラーを使用することです。IHttpHandlerインターフェースを実装し、Web.configファイルに実装を登録します。後でjQuery($ .get / $ .post)を使用して呼び出します。

編集 OPが指摘したように、ページメソッドでセッション状態WebMethodAttributeにアクセスするには、次のように使用する必要があります。

[WebMethod(EnableSession = true)]
于 2012-06-27T07:31:15.083 に答える
0

aspxページの代わりにwebserviceを使用してJSONまたはXML文字列を返すことができ、プロセスが成功した後、呼び出し元ページ(任意のaspxページ)が応答すると思います。

したがって、このWebサービスを使用すると、サードパーティのページがサーバー側のメソッドにアクセスできるようになります。

Webサービスplsを作成するには次のリンクを確認してください:Asp.netWebサービスベーシックを作成して使用する

よろしく

于 2012-06-27T07:36:49.070 に答える