2012-01-08 62 views
-1

嗨,人們我對這個網站很陌生,因爲我在C#MVC3中遇到了問題,當我放棄尋找答案,因爲我花了2周時間才決定加入。保存項目時的消息框

問題是我想要一個非常簡單的確認消息,當我在我的應用程序中創建一個項目。我嘗試了If聲明,但我無法獲取正確的上下文。請問你能幫助我,謝謝你。我的代碼:

// 
    // POST: /News/Create 

    [HttpPost] 
    public ActionResult Create(BooksItem booksitem) 
    { 
     try 
     { 

      using (var db = new BooksForever2()) 
      { 
       db.NewsItems.Add(booksitem); 
       db.SaveChanges(); 
      } 


      return RedirectToAction("Index"); 
     } 
     catch 
     { 
      return View(); 
     } 
    } 

的創建工作正常,我可以添加圖書,並保存它,但我想,當它保存會出現一條消息,使其顯示其已保存的用戶。我曾嘗試過:Viewbag.Message("Saved") 但這不起作用。任何幫助將真正的讚賞

謝謝

回答

5

在你只需要添加此控制器

TempData["Message"] = "Saved"; 
在你看來

則:

@if(TempData["Message"] != null) 
{ 
    <p>@TempData["Message"].ToString()</b> @* or whatever element you need to show*@ 
} 

在視圖級別,你可以做任何事該消息(也許使用jQuery閃爍):

jquery: Flash messages

更新:我代替ViewBag與TempData的,因爲我注意到你正在做一個重定向,在這種情況下ViewBag不會持續,但TemData會

+0

這並不是說我檢查空項目,我已明確表示我的問題是,我的添加工作正常,所有我想要的是當有人進入一本書時顯示一條消息,說它已被添加 – user1137472 2012-01-08 19:32:13

+0

您的代碼不起作用 – user1137472 2012-01-08 19:37:06

+0

我只是想要一些簡單的東西,當一本書被輸入消息框或某種的消息說它已被保存全部爲 – user1137472 2012-01-08 19:38:00

0

你想去哪裏顯示的確認消息?在同一個編輯表單上,您已經在上面,還是在索引/列表頁面上?

現在在你的方法結束時,您將會重定向到Index操作/頁:

return RedirectToAction("Index"); 

的,其結果是,索引頁將被加載,這將是完全不知道的來自其他方面的東西得救了。

我看到它的兩個選項是: 1)保持當前頁面,並顯示消息。您可以添加消息到ViewBag就像前面已經提到:

ViewBag.Message = "Saved"` 

然後像這樣顯示的:

@if(ViewBag.Message != null) 
{ 
    <p>@ViewBag.Message</p> 
} 

,然後確保你已經刪除的RedirectToAction,只是返回默認視圖,否則會將您反彈到索引頁面。

2)或者,您可以將用戶重定向回索引頁面,傳遞要顯示的消息,然後讓索引頁面查找該消息。所以,當你調用RedirectToAction,包括查詢字符串參數: ViewBag.Message

return RedirectToAction("Index", new { Message="Saved" }); 

這將您重定向到 「.../yourControllerName /索引消息=得救了嗎?」。然後,您可以添加到您的Index操作方法:

if(!string.IsNullOrEmpty(QueryString["Message"])) 
{ 
    ViewBag.Message = QueryString["Message"]; 
} 

,幷包括在索引視圖相同的視圖代碼:

@if(ViewBag.Message != null) 
{ 
    <p>@ViewBag.Message</p> 
} 
+0

我會嘗試這兩種方法和回覆謝謝 – user1137472 2012-01-08 19:39:24

+0

我先試了第二個選項,if語句已經放在我的索引視圖中,並且它顯示爲黑色,就像文本一樣沒有突出顯示 – user1137472 2012-01-08 19:43:11

+0

因此,將該文本的格式更改爲顯示它,但是你想要的。 – 2012-01-08 19:45:41