当前位置: 首页 > 面试题库 >

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

阎修明
2023-03-14
问题内容

我需要显示一条消息,以确认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
}

_Layout.cshtml

<!DOCTYPE html>
   <html>
     <head>

     </head>
     <body>
      @if(TempData["UserMessage"] != null)
      { 
          var message = (MessageVM)TempData["UserMessage"];
          <div class="alert @message.CssClassName">
               <strong>@message.Title</strong> 
               @message.Message
          </div>
      }
          @RenderBody()
     </body>
</html>
更多信息: http
//www.devcurry.com/2012/05/what-is-aspnet-mvc-
tempdata.html


 类似资料:
  • 本文向大家介绍如何使用JavaScript显示确认消息?,包括了如何使用JavaScript显示确认消息?的使用技巧和注意事项,需要的朋友参考一下 确认对话框通常用于征得用户对任何选项的同意。它显示一个带有两个按钮的对话框:取消。 如果用户单击“确定”按钮,则窗口方法确认()将返回true。如果用户单击“取消”按钮,则返回false。 示例 您可以尝试运行以下代码以在JavaScript中实现确认

  • 问题内容: 我已经编写了一个函数,希望在提交表单之前显示确认消息。我应该如何添加我的条件。下面是我的代码。 问题答案: 解决方案是使用ajax属性。 beforeSend是发送之前的请求前回调函数.beforeSend函数中返回false将取消请求。 AJAX

  • 我想建立小型应用程序。会有一些用户。我不想做自己的用户系统。我想将我的应用程序与oauth/oauth2.0集成。 集成我的前端应用程序和oauth 2.0没有问题。有很多有用的文章,如何做到这一点,即使在 stackoverflow.com 上。例如,这篇文章非常有帮助。 但是。在前端成功授权后,我该怎么办?当然,我可以在客户端上有标志,上面写着“好的,伙计,用户已通过身份验证”,但是我现在应该

  • 我在jsp页面中有一个html表单,在提交时将被发送到servlet。。在servlet中执行了这些函数之后,我再次将其重定向到同一个jsp页面,从该页面调用它,并显示一条成功消息,现在显示在同一个jsp页面上,但我不知道如何做到这一点。。。 这是我的jsp表单代码。。 这是我的servlet重定向代码。

  • 我使用jQueryAjax发布数据并相应地显示成功消息。代码如下: Javascript HTML PHP服务器端 现在一切正常,但是我无法将成功消息从服务器端发送到客户端。我如何才能在客户端页面中显示成功消息。在客户端javascript当我打印数据在警报框我看到一个空框。如何将数据变量从服务器端传递到客户端。

  • 我想在异步模式下使用Azure服务总线客户端(Microsoft.ServiceBus.dll),但不知道如何处理取消。例如,方法不采取任何,因此考虑到只要队列中没有消息,此方法就不会返回,如果要取下接收循环,我如何优雅地中断它呢? 多谢.