保存项目时的消息框

use*_*472 -1 c# asp.net razor asp.net-mvc-3

嗨,我是这个网站的新手,我在C#MVC3中遇到了我的控制器问题,当我放弃寻找答案,因为我花了两周的时间,我决定加入这里.

问题是当我在应用程序中创建项目时,我想要一个非常简单的确认消息.我尝试了一个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();
        }
    }
Run Code Online (Sandbox Code Playgroud)

创建工作正常我可以添加书籍并保存,但我想在它保存消息时显示,这样它就会显示用户已保存.我试过了:Viewbag.Message("Saved") 但这不起作用.任何帮助将得到真正的赞赏

谢谢

Bas*_*nni 5

只需在控制器中添加它即可

TempData["Message"] = "Saved";
Run Code Online (Sandbox Code Playgroud)

那么在你看来:

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

在您的视图级别,您可以对消息执行任何操作(也许使用jQuery刷新它):

jquery:Flash消息

更新:我用TempData替换了ViewBag,因为我注意到你正在进行重定向,在这种情况下,ViewBag不会持久,但TemData会

  • 请记住,这里提供的答案通常由有帮助的人员从头顶输入,而他们实际上没有将它们输入到开发环境中以验证语法.因此,您可能需要调整语法以使其正常工作.由于答案指出了你正确的方向,甚至给你95%的必要代码,所以有理由期望提问者花费一些最小的努力试图让它工作,而不是只是把它放到他们的应用程序中不了解它. (3认同)