1

我们有一个 MVC 站点,我现在正在向其中添加移动视图,并使用 jquery mobile 进行了优化。所有控制器和模型将保持不变。

因此,假设您有一个返回视图的典型控制器:

    public virtual ActionResult CustomerProfile()
    {                
       return View(CurrentCustomer);
    }

我想检查一下是否设置了会话变量IsMobileView == true,如果是这样,我希望它返回相同的视图名称...除了 aspx 文件名中的后缀“_Mobile”。

因此,在上述情况下,假设我们使用属性 [SupportsMobile] 装饰方法,如果设置了会话变量,它将使用“CustomerProfile_Mobile.aspx”作为视图。如果它不 [SupportsMobile] 或会话未设置为移动模式,它应该只返回 CustomerProfile.aspx 正常。

这也需要与语法return View("CustomerSearch", model)一起使用,如果条件正确,它将返回 CustomerSearch_Mobile.aspx。

我该如何办理这张支票?我显然可以覆盖控制器中的各种动作事件,但我需要拦截视图加载的位置。

提前致谢!詹姆士。

4

1 回答 1

2

您不需要为此使用Session。为此,您应该使用DisplayModeProvider或其他类似的现代 api 。ASP.NET 团队51Degrees提供了很多信息

使用 ASP.NET 的移动应用程序和站点

看看适合您需求的建筑选项并放松一下!

于 2013-09-16T19:24:39.267 回答