当移动站点使用不同的视图时覆盖返回视图

时间:2011-08-05 13:59:40

标签: c# asp.net asp.net-mvc

是否可以覆盖对:

的调用
return View()

要将字符串“mobile_”附加到视图文件的名称,换句话说,不要使用“mobile_index.aspx”调用视图“index.aspx”。

在其他地方我想在一个之前的动作触发事件中我将检查它是否是一个移动应用程序,设置一个标志。因此,如果设置了标志,它应该将“mobile_”附加到视图名称。

我希望在控制器级别完成此操作,而不必为每个操作执行此操作。

2 个答案:

答案 0 :(得分:2)

Stackoverflow已经实现了您想要实现的目标 我最近试图做同样的事情而且碰到了这个article 这真的很有趣,并且走在你想要遵循的同一条道路上。

最后,我决定实施我的实施way

答案 1 :(得分:1)

链接的重复问题有许多用于实现自动移动设备检测的选项; Scott Hanselman的MVC3是特定的,所以我从那里开始。

但是,也可以实现您的确切解决方案。创建自己的基本控制器类并覆盖View()方法,以便在调用基本视图之前执行所需操作。然后从中派生所有站点控制器。

MVC3的源代码是在我的MS上发布的,所以你应该能够看到View View()用来确定视图名称的确切内容,并将其“修复”为mobile_whatever。