8

TempData を使用して追加のメッセージを渡し、リクエスト全体で通知を表示しています。

    public ActionResult Address()
            TempData["NotificationType"] = "error";
            TempData["NotificationMessage"] = "There was an error updating the address.";
            return RedirectToAction("Index", "Home");
    }

    public ActionResult Index()
    {          

        if (TempData["NotificationType"] != null && TempData["NotificationMessage"] != null)
        {
            model.NotificationMessage = TempData["NotificationMessage"].ToString();
            model.NotificationType = TempData["NotificationType"].ToString();
        }
     return View();
    }

インデックス ビュー:

<div id="NotificationType" data-notification_type="@Model.NotificationType"/>
<div id="NotificationMessage" data-notification_message="@Model.NotificationMessage" />

<script type=text/javascript>
if($('#NotificationType').data('notification_type') == 'error'){
    Notify('error', "Error!", $('#NotificationMessage').data('notification_message'));
    }
</script>

次に、ビューにエラー通知を表示すると、うまく機能します。その後、別のリンクをクリックしてブラウザの戻るボタンを押すと、通知が再び表示されます。

通知が再表示されないようにする方法はありますか?

編集:戻るボタンを押したときにアクションのブレークポイントにヒットしないため、インデックスビューをキャッシュしているためのように見えます。

4

2 に答える 2

15

インデックス ビューでのキャッシュを防止することで、これを修正しました。

[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public ActionResult Index()
于 2012-12-19T09:44:16.673 に答える