1

VBscript でクラシック ASP を使用して構築した CMS があります。

登録ページを ASPX に変換し、ASYNC (AJAX?) で動作させて、1 つのフィールドを変更し、そのフィールドがページ全体ではなくデータベースを自動更新できるようにしたいと考えています。

最適には、.ASP からそのページにセッション変数を送信できますが、必須ではありません。重要。セッション変数を保持するためだけに、間違ったフレームワークを選択したくありません! ユーザーのマシンに Cookie を手動で保存して (またはクエリ文字列を使用して)、ASPX 登録ページを表示したときに、誰と話しているかを認識できるようにしています。とにかくセッション変数はクッキーに依存するので、大したことはありません。

おー!もう 1 つの要因は、そのページで既存のクラシック ASP コードをできるだけ多く利用できれば素晴らしいことです。MVC側のプラスはどれ? そして...次のようなことができるのはMVCですか?

<asp:ScriptManager id... runat="server></asp:ScriptManager>
Use <UpdatePanel ... id... runat="server"> control.
    Async code goes here
    <ContentTemplate>

    </ContentTemplate>
</asp:UpdatePanel>  

OK... WebForms、MVC、または Web Pages のどれをお勧めしますか? Visual Studio 2012 を使用しています。

アドバイスありがとう!

4

1 に答える 1

1

<asp:ScriptManager>などのサーバー コントロールを使用する必要があるため、 <asp:UpdatePanel>ASP.NET MVC を実行から除外します。

私は ASP.NET WebForms を使用します。ページの一部だけを更新する場合は、サーバーへの AJAX 呼び出しが確実に適しています。を使用できますがUpdatePanel、これはサーバーへの部分的なポストバックを行いますが、ユーザーにはページの 1 つまたは複数の部分だけが更新されたように見えます。

次の理由から、ASP.NET AJAX ページ メソッドを使用することをお勧めします。

  • サーバーへの AJAX 呼び出しを使用したい。jQuery は簡単にページ メソッドを呼び出すことができます
  • ページの一部のみを更新したい場合、ページメソッドはデータを返すだけで、クライアントはサーバーにポストバックすることなく、必要なものだけを更新できます

ASP.NET AJAX ページ メソッドの使用例を次に示します。

マークアップ:

<asp:Label id="Label1` runat="server" CssClass="TheLabel" />
<asp:Button id="Button1` runat="server" CssClass="TheButton" Text="Update Label" />

<script type="text/javascript">
    $(document).ready(function() {
        $('.TheButton').click(function() {
            $.ajax({
                type: "POST",
                url: "PageName.aspx/GetDateTime",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(result) {
                    $('.TheLabel').text(result.d);
                }
            });

            // Stop button from posting back to the server
            return false;
        });
    });
</script>

分離コード:

[WebMethod]
public static string GetDateTime()
{
    return DateTime.Now.ToString();
}

注: ASP.NET AJAX ページ メソッドは である必要がありstaticます。これはページ インスタンスではないため、ページ ライフサイクルに参加せず、どのページ コントロールにもアクセスできません。データを取得して呼び出し元のクライアントに返すための、サーバー上の非同期エンドポイントとして存在するだけです。

于 2013-11-14T01:14:35.493 に答える