加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 09:24:50 所属栏目:asp.Net 来源:网络整理
导读:当你创建一个新的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,该解决方案提到为移动设备构建母版页

祝好运

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读