csharp 如果页面对移动/非移动上下文无效,则MVC4操作过滤器属性将重定向到不同的控制器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 如果页面对移动/非移动上下文无效,则MVC4操作过滤器属性将重定向到不同的控制器相关的知识,希望对你有一定的参考价值。

using System.Web.Mvc;
using System.Web.Routing;
using System.Web.WebPages;

namespace MyNamespace
{
  public enum DeviceType {Mobile, Desktop}

	public class DeviceTypeRedirect : ActionFilterAttribute
	{
		public string RedirectController { get; set; }

		public string RedirectAction { get; set; }

		public DeviceType RedirectOnDevice { get; set; }

		public override void OnActionExecuting(ActionExecutingContext filterContext)
		{
			base.OnActionExecuting(filterContext);

			if (filterContext.HttpContext.GetOverriddenBrowser().IsMobileDevice == (this.RedirectOnDevice == DeviceType.Mobile))
			{
				this.RedirectToRoute(filterContext, new { controller = this.RedirectController, action = this.RedirectAction });
			}
		}

		private void RedirectToRoute(ActionExecutingContext context, object routeValues)
		{
			var rc = new RequestContext(context.HttpContext, context.RouteData);
			var virtualPathData = RouteTable.Routes.GetVirtualPath(rc, new RouteValueDictionary(routeValues));
			if (virtualPathData != null)
			{
				string url = virtualPathData.VirtualPath;
				context.HttpContext.Response.Redirect(url, true);
			}
		}
	}
}

以上是关于csharp 如果页面对移动/非移动上下文无效,则MVC4操作过滤器属性将重定向到不同的控制器的主要内容,如果未能解决你的问题,请参考以下文章

csharp 上下移动と回転を缲り返すコイン

2022-06-20:一个二维矩阵,上面只有 0 和 1,只能上下左右移动, 如果移动前后的元素值相同,则耗费 1 ,否则耗费 2。 问从左上到右下的最小耗费。 来自网易。3.27笔试。

vim

模拟沉积法

js实现移动端手指左右上下滑动翻页效果

csharp オバケは浮游して上下に动く(移动时に地形·障碍物の影响を受けない)http://negi-lab.blog.jp/KillDOTweenSequence