在索引视图页面中显示插入和更新数据的消息

Show message for insert and update data in index view page

在我的 ASP.NET MVC 应用程序中,我们有

public ActionResult Create(parameters)
{
    if (ModelState.IsValid)  
    {  
        //code block 
        return RedirectToAction("Index");  
    }                                                 
}

这是插入数据的方法:

public ActionResult Edit(int? id) 
{
    if (ModelState.IsValid)  
    {  
        //code block 
        return RedirectToAction("Index");  
    }                                                 
}

而且我还有数据编辑的方法

成功后insert/edit,我正在呼叫

return RedirectToAction("Index");

我想为 create 方法显示消息“数据插入成功”,为 update 方法显示消息“数据更新成功”。

是否可以在 Index 页面上显示这样的消息,或者有没有其他方法可以向用户显示这两个成功操作的消息?

1.将字符串作为模型传递给视图没有问题:

public ActionResult Index(string message)
{
    return View((object)message);
}

public ActionResult Create(/*parameters*/)
{
    if (ModelState.IsValid)
    {
        //code block 
        return RedirectToAction("Index", new { message = "Data inserted successfully" });
    }
    return View();
}

public ActionResult Edit(int? id)
{
    if (ModelState.IsValid)
    {
        //code block 
        return RedirectToAction("Index", new { message = "Data updated successfully" });
    }
    return View();
}

Index.cshtml:

@model System.String

@{
    ViewBag.Title = "Home Page";
    var text = (Model is string) ? Model : String.Empty;
}

@if (!String.IsNullOrEmpty(text))
{
    <div class="jumbotron">
        <h1>@Model</h1>
    </div>
}

@using (Html.BeginForm("Create", "Home" /* route values */))
{
    <input type="submit" value="Insert" />
}

@using (Html.BeginForm("Edit", "Home", new { id = 123 }))
{
    <input type="submit" value="Update" />
}

2。并且可以在 TempData:

中传递消息
public ActionResult Index(string message)
{
    TempData["message"] = message;
    return View((object)message);
}

在视图中:

@{
    var message = (TempData.ContainsKey("message") && TempData["message"] is string msg) ? msg : String.Empty;
    ViewBag.Title = "Index Page";
}

@if (!String.IsNullOrEmpty(message))
{
    <div class="jumbotron">
        <h1>@Model</h1>
    </div>
}

3。消息字符串可能包含在强类型视图的视图模型中。

您可以使用 toastr ....这是详细示例

https://www.c-sharpcorner.com/UploadFile/97d5a6/toastr-notifications-to-your-web-site/

我喜欢使用 TempData 将消息传递给视图。您可以在 RedirectToAction:

之前设置 TempData 的值
TempData["message"] = "data inserted successfully";
return RedirectToAction("Index");

在索引视图中,只有在控制器中设置了 TempData 时才会显示消息:

@if (TempData["message"] != null)
{
    <div class="alert-info">@TempData["message"]</div>
}