【问题标题】:Are ASP.NET mobile views only for ASP.NET MVC? or can they be used in plain ASP.NET as well?ASP.NET 移动视图是否仅适用于 ASP.NET MVC?或者它们也可以在普通的 ASP.NET 中使用?
【发布时间】:2013-02-25 18:00:17
【问题描述】:

我知道在 ASP.NET MVC 中,您可以拥有移动视图并执行 Index.mobile.cshtml_Layout.mobile.cshtml 之类的操作,并且服务器知道将这些视图/页面提供给移动设备而不是 Index.cshtml_Layout.cshtml,但是这也可以在普通的 ASP.NET 网站(不使用 MVC)中完成吗?

注意:我在普通的 ASP.NET 网站中使用 razor 语法。

提前致谢。

--李

更新:

为了澄清,我知道各种浏览器检测方法。我的问题是特别是关于Index.mobile.cshtml 形式的移动视图是否可以在普通的 ASP.NET 中使用。

更新(功能现已包含在 2013 年 2 月 18 日宣布的 ASP.NET 最新版本中):

魔鬼的谈话.. 现在可以在最近的版本中实现.. 向下滚动页面到标题“ASP.NET Web 窗体增强”

http://weblogs.asp.net/scottgu/archive/2013/02/18/announcing-release-of-asp-net-and-web-tools-2012-2-update.aspx

【问题讨论】:

标签: asp.net asp.net-mvc


【解决方案1】:

看看这个对 ASP.NET Web 窗体的移动支持的简要说明:

How To: Add Mobile Pages to Your ASP.NET Web Forms / MVC Application

【讨论】:

  • 谢谢,那里有一些指示,但它没有回答我关于拥有 Index.mobile.cshtml 可能性的问题
【解决方案2】:

我的理解是,MVC4 原生支持的备用视图模式是 MVC 使用的 WebPages2 的结果,目前仅在 MVC 中用于通过视图引擎解析定位视图(VirtualPathProviderDisplayModeProvider 的组合)。这是因为通过 MVC 提供的视图和通过 URI 提供的请求不会映射到服务器上的物理位置来提供文件。另一方面,ASP.NET 直接根据 URI 提供文件,而不像 MVC 那样依赖虚拟路径提供程序。

我的猜测是 ASP.NET 不支持基于 MVC 使用的相同框架自动提供备用文件。话虽如此,我确信可以根据VirtualPathProviderViewEngine 的逻辑派生一个实现,它可以使用 ASP.NET 实现类似的结果,但是我知道目前没有实现这一点。最好的建议是看看你能不能找到usages of DisplayModeProvider,看看有没有什么弹出来。

我不是专家,所以请继续寻找,但我想我会提供我能提供的。

【讨论】:

  • 我也是这么想的。你认为我可以简单地询问每个Application_BeginRequest() in Global.asax,检查Request.Browser.IsMobileDevice,然后检查请求的文件是否具有等效的.mobile.cshtml 文件,如果有的话.. 重定向到那里?
  • 值得一试,Request.Browser.IsMobileDevice 依赖于过去不知道是最新的浏览器定义文件,但我只是在网上看了一下,似乎他们确实更新了它使用 .NET 4.0。我也只是挖了DisplayModeProvider,发现他们使用HttpContext.GetOverriddenBrowser().IsMobileDevice,所以试一试。
【解决方案3】:

所以我得出的结论是,这不是普通 ASP.NET 中的内置功能。 虽然有(IMO 不太优雅的)替代方案。

ASP.NET 移动视图是否适用于 ASP.NET MVC?是的。

更新:这可能在最新版本中实现

http://weblogs.asp.net/scottgu/archive/2013/02/18/announcing-release-of-asp-net-and-web-tools-2012-2-update.aspx

--李

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-26
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    • 2010-10-31
    • 1970-01-01
    相关资源
    最近更新 更多