加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 03:48:56 所属栏目:asp.Net 来源:网络整理
导读:我见过的大多数ASP.NET MVC示例都描述了用户正在查看对象(或对象集合)然后从该页面移动到显示用户完成的表单的情况.在提交具有良好输入的表单后,用户被重定向回显示对象(或列表)的页面,并且用户可以看到他们的更改成功. 我遇到了每个业务规则都没有视图或列
我见过的大多数ASP.NET MVC示例都描述了用户正在查看对象(或对象集合)然后从该页面移动到显示用户完成的表单的情况.在提交具有良好输入的表单后,用户被重定向回显示对象(或列表)的页面,并且用户可以看到他们的更改成功.

我遇到了每个业务规则都没有视图或列表页面的情况.

在ASP.NET MVC中,这种场景有哪些好的方法?

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

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

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

解决方法

我使用具有ShowMessage方法的基本控制器.此方法接收要显示的消息(或资源键,如您所愿)和指示消息类型的枚举(成功,错误,通知等).在返回操作之前,我使用适当的消息调用ShowMessage,例如

ShowMessage(“这里有一条好消息.”,MessageType.Success);

然后在母版页中,我调用了一个帮助器方法,该方法呈现一个共享的局部视图,以便在有任何情况时显示消息.消息使用固定密钥存储在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>

我确定可能有更好的方法,比如使用过滤器,但这种方法对我很有帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读