asp.net-mvc – 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> 我确定可能有更好的方法,比如使用过滤器,但这种方法对我很有帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – Web API,OData,$inlinecount和测试
- asp.net-mvc – 实体框架 – 选择特定列并返回强类型而不丢
- asp.net-mvc – MvcHtmlString.Create()和Html.Raw()之间的
- asp.net – IIS 7.5不加载静态html页面
- 我可以在同一解决方案中拥有多个ASP.Net网站吗?
- asp.net – 无法自动进入服务器.无法确定停止位置
- .NET HttpSessionState案例不敏感
- asp.net – 获取数据绑定到ListView上DataBound事件
- asp.net – Response.Flush()仅适用于Firefox
- asp.net-mvc – ConfigurationManager读取错误的文件 – We
- 将额外的信息与ASP.NET MVC成员关联
- asp.net-mvc – Resharper 5:如何设置内联代码块
- ASP.NET MVC/C++#:我可以避免在单行C#条件语句中
- 将ASP.NET应用程序部署到远程服务器
- asp.net-mvc-3 – Razor View引擎中的全局变量
- asp.net – 配置部分不能在web.config文件中包含
- asp.net – “localhost”上运行网站是非常慢
- IIS ASP.Net网站 – ManagedPipelineHandler错误
- asp.net-mvc – 使用disabled =“disabled”属性
- asp.net – Reflection构成了什么风险? (中等信