将操作重定向到移动视图

发布于 2024-10-31 16:39:43 字数 262 浏览 0 评论 0原文

public ActionResult Home()
        {
            return View();
        }

这就是我在 HomeController 中当前站点的内容。如何检测该操作是否是从移动设备调用的,如果是,则重定向到 MobileHome.aspx 而不是 Home.aspx。

我不需要知道设备的详细信息,因为我正在 JQuery Mobile 中实现视图,它应该根据呈现的视图正确调整自身。

public ActionResult Home()
        {
            return View();
        }

This is what I have for my current site within the HomeController. How can I detect if the action is called from a mobile device, and if it is, re-direct to MobileHome.aspx instead of Home.aspx.

I don't need to know the details of the device, because I am implementing the view in JQuery Mobile, which should adjust itself correctly depending on the view it's rendered in.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

淡看悲欢离合 2024-11-07 16:39:43

您可能会发现以下博客文章很有用。

You may find the following blog post useful.

谜泪 2024-11-07 16:39:43

以下是对 Controller 类的重写。我还没有测试过这个,所以考虑它伪代码:

protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
    if (this.Request.Browser.IsMobileDevice && filterContext.Result is ViewResultBase)
    {
        var viewResult = filterContext.Result as ViewResultBase;

        viewResult.ViewName = "Mobile" + viewResult.ViewName;
    }

    base.OnActionExecuted(filterContext);
}

您可以使用 Request.Browser.IsMobileDevice 来确定设备是否是移动的(显然),然后检查结果是否是一个视图。但是,如果您将实际视图传递给操作结果,则仅更改视图名称是不够的。

The following is an override on the Controller class. I have not tested this, so consider it pseudo code:

protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
    if (this.Request.Browser.IsMobileDevice && filterContext.Result is ViewResultBase)
    {
        var viewResult = filterContext.Result as ViewResultBase;

        viewResult.ViewName = "Mobile" + viewResult.ViewName;
    }

    base.OnActionExecuted(filterContext);
}

You can use the Request.Browser.IsMobileDevice to determine if the device is mobile (obviously), and then check to see if the result it a view. However, changing the view name is not sufficient if you pass an actual view to the result of your action.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文