gpt4 book ai didi

asp.net-mvc - ASP.NET MVC 向最终用户显示操作成功

转载 作者:行者123 更新时间:2023-12-04 15:27:25 25 4
gpt4 key购买 nike

我见过的大多数 ASP.NET MVC 示例都描述了这样的场景:用户正在查看一个对象(或对象集合),然后从该页面移动到一个显示用户完成的表单的页面。提交具有良好输入的表单后,用户将被重定向回显示对象(或列表)的页面,用户可以看到他们的更改成功。

我遇到过每个业务规则没有 View 或列表页面的情况。

对于 ASP.NET MVC 中的这种情况,有哪些好的方法?

在过去使用 Classic ASP 和 ASP.NET 时,我会处理输入,然后向用户显示成功消息或有错误的表单——所有这些都来自同一页面。这似乎违背了最佳实践(SRP、 View 中没有逻辑等)。

一种简单的方法是重定向到一个新页面,告诉用户他们的更改已成功,但用户可以随时访问该页面。如果我开始加入逻辑来防止这种情况(即临时数据),解决方案就会开始变得肮脏。

我可以重定向到登录页面,但没有确认。也许我可以依靠一个消息系统,当最终用户返回登录页面时向他们显示确认信息?

最佳答案

我使用具有 ShowMessage 方法的基本 Controller 。此方法接收要显示的消息(或资源键,如您所愿)和指示消息类型(成功、错误、通知等)的枚举。在返回操作之前,我使用适当的消息调用 ShowMessage,例如
ShowMessage("A nice message here.", MessageType.Success);
然后在母版页中,我调用了一个辅助方法,该方法呈现一个共享的局部 View ,该 View 在有消息时显示消息。消息存储在 TempData用固定键。您可以使用出现在 Blueprint css framework 中的样式。用于根据消息类型显示消息。

这是一些代码:

public void ShowMessage(string message, MessageType messageType)
{
var messageViewModel = new MessageViewModel(message, messageType);
TempData["Message"] = messageViewModel;
}

部分观点:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyApp.Models.MessageViewModel>" %>
<%var className = Model.MessageType.ToString().ToLower(); %>
<div class="<%=className%>">
<%=Html.Encode(Model.Message)%>
</div>

我确信可能有更好的方法,比如使用过滤器,但这种方法对我非常有帮助。

关于asp.net-mvc - ASP.NET MVC 向最终用户显示操作成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3864068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com