0

私が作成している小さなPOCWebアプリがあり、私のページの1つは「ViewAds」と呼ばれています(それが何をするか想像できます)。とにかく、サイト管理者のために、各広告に削除ボタンがあります。これは、コントローラーアクションDeleteAdへのajax呼び出しを呼び出します。これは、DALを押すだけで、アイテムを削除して戻ります。リダイレクトも更新も何もありません。

Ajaxコールバックは、私が更新を処理する場所です。

success: function(){
url = '@Url.Action("ViewAds","Ad",new{OtherOptionsForDisplayingAdsGo=here})';
window.location.href = url;
}

これは広告のDBに再びヒットし、削除された広告なしで私のビューを返すはずです。

ただし、代わりに、手動で更新するまで広告が表示されたままページが表示されます。また、ViewAdsにブレークポイントを設定して、更新する時間を与えると(おそらく)、正常に機能することにも気づきました。誰かがここで何が起こっているのか知っていますか?

あなたがそれを見たいと思った場合に備えて、これが私のViewAdsです:

public ActionResult ViewAds(string getAllAds = "false")
        {
            bool GetAllAds = bool.Parse(getAllAds);
            List<PostedAD> results;
            if (Session["Location"] == null || GetAllAds)
            {
                DataManager _dataProvider = new DataManager();
                results = _dataProvider.FetchAds();
                ViewData["ViewAllAds"] = "True";
                return View("ViewAds", results);
            }
            else
            {
                string Location = Session["Location"].ToString();
                DataManager _dataProvider = new DataManager();
                results = _dataProvider.FetchAdsByLocation(Location);
                ViewData["ViewAllAds"] = "False";
                return View("ViewAds", results);
            }
        }

そして、削除はかなり直感的です。DataManager.Delete() 特定の広告で私を呼び出すだけです。(正常に動作します)

それで、誰かがこれを手伝うことができますか?何が起こっているのかわかりませんが、ajaxと関係があると思います。

4

2 に答える 2

0

たぶんキャッシュの問題。ランダムなクエリ文字列パラメータを追加して、キャッシュを無効にしてみてください。

window.location.href = "@Url.Action("ViewAds", "Ad", new { OtherOptionsForDisplayingAdsGo = here, _ = DateTime.Now.Ticks.ToString() })";
于 2012-07-27T14:30:13.537 に答える
0

さて、この特定の関数のDALコード内で誤って接続オブジェクトを開いたままにしていたことがわかりました。追加:

finally
{
    if(conn!=null) conn.Close();
}

私の方法の終わりまでFetchAds()私の問題を修正しました。

誰かがそれが説明された問題を引き起こす理由を正確に説明したいのであれば、私は喜んでその答えを受け入れます。

于 2012-07-27T15:28:15.953 に答える