asp.net-mvc – 更改ASP.NET MVC筛选器中的视图
发布时间:2020-12-15 20:41:47 所属栏目:asp.Net 来源:网络整理
导读:如果用户使用移动浏览器,我想将用户重定向到其他视图.我已经决定使用MVC过滤器将其应用于我希望拥有移动视图的操作. 我相信这个重定向需要在OnActionExecuted中发生,但是filterContext不包含有关视图的信息 – 但它确实在OnResultExecuted中,但是此时我认为
如果用户使用移动浏览器,我想将用户重定向到其他视图.我已经决定使用MVC过滤器将其应用于我希望拥有移动视图的操作.
我相信这个重定向需要在OnActionExecuted中发生,但是filterContext不包含有关视图的信息 – 但它确实在OnResultExecuted中,但是此时我认为更改视图为时已晚. 如何拦截视图名称并更改ViewResult? 这就是我在执行的结果中所拥有的以及我希望在Action Executed中工作的内容. public class MobilePageFilter : ActionFilterAttribute { public override void OnResultExecuted(ResultExecutedContext filterContext) { if(filterContext.Result is ViewResult) { if (isMobileSite(filterContext.HttpContext.Session[SetMobile.SESSION_USE_MOBILE])) { ViewResult viewResult = (ViewResult)filterContext.Result; string viewName = viewResult.ViewName; filterContext.Result = new ViewResult { ViewName = "Mobile/" + viewName,ViewData = viewResult.ViewData,TempData = viewResult.TempData }; } } base.OnResultExecuted(filterContext); } } 解决方法
我会向你推荐
following blog post,它解释了一个更好的替代方案来实现你的要求,而不是使用动作过滤器.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 使用ASP.net和VB.net(或C#)从XML文件编辑和删除数据
- 什么是Application Server for ASP.NET?
- 从asp.net获取验证AD用户objectGuid
- nunit – 单元测试时不会自动验证模型
- asp.net-mvc-3 – ASP.NET MVC 3 RTM项目中的这个错误是什么
- 验证 – ASP.NET MVC将null转换为零长度字符串
- ASP.Net:如何从内容页面事件处理程序调用主页面事件处理程
- asp.net-mvc-4 – 为什么MVC4 @ Styles.Render()在调试模式
- asp.net – HttpContext.Current.Cache可用于所有会话
- asp.net – 以编程方式放置编辑模式的gridview行
推荐文章
站长推荐
- asp.net-mvc – OnValidateIdentity会话为空 –
- asp.net-mvc-3 – 不能使用NuGet PagedList ASP.
- asp.net – 如何忽略正则表达式的情况?
- ASP.NET MVC的提示和ASP.NET WebForms开发人员的
- ASP.NET用户控件列表/集合/数组属性
- asp.net – Docker日志中的.net输出
- asp.net-mvc-3 – 在Razor视图中显示List元素
- asp.net-mvc-3 – MVC3只读文本框但值必须POST
- asp.net – 在部分视图中强制使用没有Html.Begin
- asp.net-core – 如何将值更新到appsetting.json
热点阅读