1

ユーザーメッセージの受信トレイとしてモーダルポップアップがあります。ユーザーがリンクをクリックしてメッセージを表示すると、jqueryを使用してメッセージが表示されます。メッセージ表示の周りのナビゲーションはすべてクライアント側であり、素晴らしくスムーズです。

私が解決しようとしている問題は、ユーザーがメッセージリンクをクリックしてメッセージを表示した後、これを反映するようにデータベースを更新することです。これを行うサーバー側のc#メソッドがあり、ajaxを使用してアクセスしようとしています。それ以外の方法では、ページがリロードされ、メッセージモーダルが消えます。

私の試みは、更新パネルにボタンを配置することでした。これは機能し、完全なポストバックを引き起こさず、モーダルはアップしたままになります。したがって、次のステップは、メッセージを表示する関数が実行されたときにjqueryからボタンを呼び出すことでした。今では、部分的ではなく、全ページの投稿を行います。

<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<asp:Button runat="server" ID="UpdateReadStatusButton" Text="test" OnClick="UpdateReadStatus"/>   
</ContentTemplate>
</asp:UpdatePanel>

それから私はそれをjqueryで呼び出します

function ShowMyPopup(message, subject, sender, reciever, id) {
  ShowPopup(message, subject, sender, reciever, id);
  $('#ctl00_UpdateReadStatusButton').click();
}

私はajaxの別の方法を使用しようとしましたが、サーバー側のコードを簡単に静かに呼び出すことができ、デプロイするまでは非常にうまく機能しました。Michealschwarzの.netajaxラッパーを試しましたが、展開後も成功しませんでした。

問題は、サイトがgodaddy共有ホスティングプランでホストされており、私が試した他のajaxの方法がサーバーで機能しないことです。現在、最新バージョンのAjaxControlToolKitを使用していますが、これはWebフォームアプリであるため、MVCの簡単なソリューションは機能しません。私は一般的にajaxとWeb開発に非常に慣れていないので、どんな助けでも大歓迎です。

また、jqueryでbuttons commandArgument属性を設定することも考えていました。これは、メッセージIDがあり、ポストバックサーバー側で取得できるためです。

ビジュアルが必要な場合は、On2Wheels.caを参照し、ユーザーHelpUserとパスワードHelpUser(大文字に注意)を使用してログインし、右側のメールアイコンをクリックしてください。

私はajaxへのJqueryの方法を試しました:

function UpdateRead() {
    $.ajax({
        type: "POST",
        url: "Default.aspx/UpdateReadStatus",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (result) {
            //do something
        }
    });
}

ac#メソッドで:

    [System.Web.Services.WebMethod]
    protected void UpdateReadStatus(string id)
    {
        var a = id;
    }

MVCを使用している場合は、URLでのみメソッドを呼び出すことができると思いました。また、これはマスターページにあるため、すべてのページに表示されます。

4

1 に答える 1

0

jQuery を使用している場合、ASP.Net UpdatePanel を使用する必要はありません。それは厄介で面倒で、それだけの価値があるよりもずっと面倒です。AJAX 機能には厳密に jQuery メソッドを使用してください。彼らのウェブサイトにあるいくつかの例を見てみましょう:

http://api.jquery.com/jQuery.ajax/

于 2012-04-23T20:26:13.280 に答える