当它是移动站点时重写返回视图以使用不同的视图

本文关键字:视图 返回 移动 站点 重写 | 更新日期: 2023-09-27 18:04:32

是否可以重写对:

的调用
return View()

将字符串"mobile_"附加到视图文件的名称,换句话说,而不是调用视图"index"。

"mobile_index.aspx"

在其他地方,我猜在动作触发事件之前,我会检查它是否是一个移动应用程序,设置一个标志。因此,如果设置了该标志,则应该在视图名称后添加"mobile_"。

我希望这个在控制器级别完成,而不是每个动作都这样做

当它是移动站点时重写返回视图以使用不同的视图

你想要实现的东西已经被Stackoverflow实现了。
我最近也在尝试做同样的事情,我偶然看到了这篇文章。
它真的很有趣,和你想走的路是一样的。

最后我决定实现我的实现是这样的。

所述链接的重复问题具有若干用于实现自动移动设备检测的选项;Scott Hanselman的是mvc3特有的,所以我从这里开始。

然而,实现您的确切解决方案也是可能的。创建您自己的基控制器类,并在调用基视图之前重写View()方法来做您想做的事情。然后从它派生出所有的站点控制器。

MVC3的源代码是在我的MS中发布的,所以你应该能够确切地看到基本视图()用来计算视图名称,并"修复"它为mobile_whatever。