簡體   English   中英

如何在Redirect()完成后顯示“已保存!”消息..?

[英]How to show a “Saved!” message after Redirect() is made..?

我目前正在從事MVC4項目。

想象一下以下場景:


(1)允許用戶向多個表添加數據,之后需要通過點擊提交進行確認。 <input type="submit" value="" id="saveBtn" title="Save" />沒有值的原因是因為我將CSS應用於提交。

(2)之后,為避免以前的錯誤阻止刷新頁面重復數據,我需要在我的Controller中重定向用戶: return Redirect("Edit?Id=" + id);

(3)完成Redirect( 之后, 我想顯示一條簡單的消息“Saved!” 延遲5秒 我不想要alert("Saved!");


我目前有一個偽解決方案工作,但不是首選。 這是jQuery中的一個簡單點擊功能:

CSS

.successMessage {
    color: darkgreen;
}

HTML

<div class="successMessage" style="display: none;">Saved!</div>

JS

$('#saveBtn').click(function () {
    $(".successMessage").delay(500).show(0);
});

問題是,因為我Redirect(); 用戶,我的消息不能延遲這個“解決方案”。 並在Redirect(); 制作完成后,該消息將不再顯示。

獲得“延遲”消息的更好方法是什么? 提前致謝。

在提交操作中添加TempData,並在頁面准備好時確認TempData是否具有值,從而在視圖中顯示延遲消息。

行動:

//save info
TempData["Message"]="Saved!";
return Redirect("Edit?Id=" + id)

視圖:

string message=TempData["Message"]==null?"":TempData["Message"].ToString();
@if(message!="")
{
    <div class="successMessage" style="display: none;">@message</div>
    <script type='text/javascript'>
      $(document).ready(function(){
         $(".successMessage").delay(500).show(0);
      })
    </script>
}

顯示通知消息的最佳解決方案是使用TempData["Message"]來存儲值,並在每個頁面上執行此操作 -

 if (TempData["Message"] != null)
 {
   ViewBag.Message = TempData["Message"];
 }

現在在視圖中,

        <div>
            @if (ViewData["Message"] != null)
            {
                <div>Saved!</div>
            }
       </div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM