我们有一个MVC网站,我现在正在添加移动视图,并使用jquery mobile进行优化。 所有控制器和型号都保持不变。
因此,假设您有一个返回视图的典型控制器:
public virtual ActionResult CustomerProfile()
{
return View(CurrentCustomer);
}
我想检查一下是否设置了一个会话变量,说明 IsMobileView == true ,如果是,我希望它返回相同的视图名称... EXCEPT后缀aspx文件名中的“_Mobile”。
所以在上面的例子中,假设我们用attibute [SupportsMobile]装饰方法,如果设置了session变量,它将使用“CustomerProfile_Mobile.aspx”作为视图。如果它没有[SupportsMobile]或会话未设置为移动模式,它应该正常返回CustomerProfile.aspx。
这需要使用语法返回View(“CustomerSearch”,model),如果条件合适,它将返回CustomerSearch_Mobile.aspx。
如何办理入住手续?我显然可以覆盖控制器中的各种动作事件,但我需要拦截视图加载的位置。
提前致谢!詹姆斯。
答案 0 :(得分:2)
您不需要使用会话。为此,您应该使用DisplayModeProvider
或其他现代api,例如51Degrees
。 ASP.NET团队
Mobile Apps & Sites with ASP.NET
看一看并选择适合您需求的建筑选项!