我希望我的网站提供来自同一个 ASP.NET MVC 实例的移动版本和桌面版本。
我将有 2 个主机名:
http://m.sitename.com & http://www.sitename.com
我想保持模块化,这意味着移动站点的控制器完全独立(而不仅仅是拆分视图)。我很高兴为所有移动控制器命名以“M”为前缀以避免重复的类名问题,IE:
MAccountController.cs
AccountController.cs
我想m.sitename.com/account/x
为移动设备维护 URL,而不是/maccount/x
. 所以在我看来,有两种可能的方法可以很好地处理这个问题:
选项1:
所有移动链接都将是/maccount/x
格式,但显示名称(在 URL 中)将是/account/x
或者:
选项2:
不知何故,我将移动控制器设置为仅响应http://m.sitename.com
格式请求,而桌面控制器仅响应http://www.sitename.com
格式。
选项 2a。使用子类化 IEAccountController : DesktopController/MobileController
或
选项 2b。Controller 类本身的某种属性/属性。
选项 1 或 2 是否可行?这个比那个好吗?有一个更好的方法吗?