ASP.NET MVC:如何在服务器端处理后显示成功确认消息

我需要显示一条消息,以确认ASP.NET

MVC应用程序中的数据库更新成功。当前,应用程序仅在发生错误时显示消息(使用ValidationSummary帮助器)。成功完成操作后,应用程序当前将重定向到导航中的适当点。

目标是:

  • 以适当的方式显示确认消息
  • 最小化阅读消息后继续进行所需的用户操作
  • 避免额外的帖子/往返来显示消息
  • 最大限度地减少开发工作,并冒着在应用程序中的多个点插入消息的风险

我的偏好是在“提交”按钮附近显示某种工具提示类型的消息,然后是一种用于删除消息并在成功后继续进行现有重定向的机制。

这似乎建议使用Ajax调用而不是现有的HTTP POST来提交表单。我将如何处理?

回答:

我会用 TempData["key"]

这就像ViewData["key"]但是数据保留用于下一个HttpRequest并在此之后由asp.net自动处理

因此,您可以执行此操作。

[HttpPost]

public ActionResult SomePostAction(SomeViewModel vm)

{

if(ModelState.IsValid) // Is User Input Valid?

{

try

{

CommitData();

TempData["UserMessage"] = new MessageVM() { CssClassName = "alert-sucess", Title = "Success!", Message = "Operation Done." };

return RedirectToAction("Success");

}

catch(Exception e)

{

TempData["UserMessage"] = new MessageVM() { CssClassName = "alert-error", Title = "Error!", Message = "Operation Failed." };

return RedirectToAction("Error");

}

}

return View(vm); // Return View Model with model state errors

}

<!DOCTYPE html>

<html>

<head>

</head>

<body>

@if(TempData["UserMessage"] != null)

{

var message = (MessageVM)TempData["UserMessage"];

<div class="alert @message.CssClassName">

<span>@message.Title</span>

@message.Message

</div>

}

@RenderBody()

</body>

</html>

更多信息:http

//www.devcurry.com/2012/05/what-is-aspnet-mvc-

tempdata.html

以上是 ASP.NET MVC:如何在服务器端处理后显示成功确认消息 的全部内容, 来源链接: utcz.com/qa/406423.html

回到顶部