C# iPhone iPad在ASP.Net MVC应用程序中未检测到浏览器类型
我有一个web应用程序,其中包含很多Widgets/页。当在Safari中打开某些小部件时,我想阻止它们,如果有人试图从Safari浏览器打开webapp,我会显示一些消息。 下面是我写的代码C# iPhone iPad在ASP.Net MVC应用程序中未检测到浏览器类型,c#,asp.net,.net,asp.net-mvc-5,safari,C#,Asp.net,.net,Asp.net Mvc 5,Safari,我有一个web应用程序,其中包含很多Widgets/页。当在Safari中打开某些小部件时,我想阻止它们,如果有人试图从Safari浏览器打开webapp,我会显示一些消息。 下面是我写的代码 public class BlockFromSafari : System.Web.Mvc.ActionFilterAttribute { // runs just before the action is executed public override vo
public class BlockFromSafari : System.Web.Mvc.ActionFilterAttribute
{
// runs just before the action is executed
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var browserType = filterContext.HttpContext.Request.Browser.Browser;
base.OnActionExecuting(filterContext);
if (browserType.Contains("Safari"))
{
// Redirect the user accordingly
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary { { "controller", "Security" }, { "action", "Safari" } });
}
}
}
请注意,我已经在所有我想要的动作方法上应用了这个过滤器
public ActionResult Safari()
{
return Content("This is SAFARI!!");
}
当前行为:
有趣的阅读因此,这篇文章可能会对你有所帮助
requestContext.HttpContext.Request.Headers.Profiles.SelectMany(p=>p.Values.ToArray()代码>
var userAgent=window.navigator.userAgent;
if(userAgent.match(/iPad/i)| userAgent.match(/iPhone/i)){
//iPad还是iPhone
}
否则{
//还有别的吗
}
以下是完整的答案