当前位置 : 主页 > 网络编程 > ASP >

如果设备在asp.net web form app中移动,则更改母版页

来源:互联网 收集:自由互联 发布时间:2021-06-24
当你创建一个新的asp.net项目我nvisual studio 2012时,它会用这段代码添加一个ascx:`//确定当前视图 var isMobile = WebFormsFriendlyUrlResolver.IsMobileView(new HttpContextWrapper(Context)); CurrentView = isMobile?
当你创建一个新的asp.net项目我nvisual studio 2012时,它会用这段代码添加一个ascx:`//确定当前视图
            var isMobile = WebFormsFriendlyUrlResolver.IsMobileView(new HttpContextWrapper(Context));
            CurrentView = isMobile? “手机”:“桌面”;

// Determine alternate view
        AlternateView = isMobile ? "Desktop" : "Mobile";

        // Create switch URL from the route, e.g. ~/__FriendlyUrls_SwitchView/Mobile?ReturnUrl=/Page
        var switchViewRouteName = "AspNet.FriendlyUrls.SwitchView";
        var switchViewRoute = RouteTable.Routes[switchViewRouteName];
        if (switchViewRoute == null)
        {
            // Friendly URLs is not enabled or the name of the swith view route is out of sync
            this.Visible = false;
            return;
        }
        var url = GetRouteUrl(switchViewRouteName, new { view = AlternateView });
        url += "?ReturnUrl=" + HttpUtility.UrlEncode(Request.RawUrl);
        SwitchUrl = url;`

我真的不理解它,它是如何工作的?这个奇怪的代码是什么?WebFormsFriendlyUrlResolver?我有一个现有的项目,我想知道如果检测到移动浏览器是否可以切换母版页

WebFormsFriendlyUrlResolver是一个获取路由关联的辅助类.如果你想启用友好网址,请使用www.yourdomain.com/myaccount.aspx,可以显示为www.yourdomain.com/Account

你不需要使用它(针对你的具体问题),但它是asp.net的一个很酷的功能,并且在RouteTables中创建自定义路由变得容易

Scott通过this article帮我理解了友好的URL

现在针对您的问题,更改移动设备的母版页,母版页只能在页面的pre-init事件中更改.我不知道在那之后注入新的母版页的另一种方法,因为我认为为时已晚

当你有很多页面时,勾搭这个handler to httpcontext
下面是一个伪代码,需要根据您的需要进行改进

void page_PreInit(object sender, EventArgs e)
    {
        Page p = this.Context.Handler as Page;
        if (p != null)
        {
            // set master page
            if(Request.Browser.IsMobileDevice){
              p.MasterPageFile = "~/MasterPages/mobile.master";
            }
            else{
               p.MasterPageFile = "~/MasterPages/normal.master";
            }

        }
    }

一旦你想到这一点,请确保你阅读这个解决方案at SO,该解决方案提到为移动设备构建母版页

祝好运

网友评论