我已经构建了一个基本控制器,我的所有控制器都继承了这个控制器,并且我已经设置好它,以便它检查浏览器类型并动态返回相应的MasterPageFile。
我想知道这是否是一种有效的方法,或者我是否应该采用另一种方式进行优化。
Public Class BaseController : Inherits System.Web.Mvc.Controller
Protected Overrides Function View(ByVal viewName As String, ByVal masterName As String, ByVal model As Object) As System.Web.Mvc.ViewResult
If Request.Browser.IsMobileDevice Then
Return MyBase.View(viewName, "Mobile", model)
Else
Return MyBase.View(viewName, "Site", model)
End If
End Function
End Class
此外,如果有人有兴趣,我使用信息found here来增强我的Request.Browser.IsMobileDevice
支票。
我正在使用的.browser
文件可以是found here。
答案 0 :(得分:1)
恕我直言,这是一个非常好的方法:基于请求参数(或者更具体地说,在这种情况下是HTTP标头),控制器决定渲染哪个视图。
答案 1 :(得分:0)
您可能需要在ViewPage中探索这样做,即创建一个BaseViewPage而不是在Controller中执行它?
已添加:这可能有所帮助: