在ASP.Net MVC中开发移动和平板电脑应用程序时出现问题

时间:2015-01-28 15:15:03

标签: jquery html asp.net-mvc mobile razor

我必须使用ASP.Net MVC 4在Mobile和Tablet中设计一些页面。我已经通过创建CO控制器和视图为桌面开发了这些页面。

我有不同的移动和桌面布局。我已经在项目中有移动和平板电脑的区域。由于移动/平板电脑与桌面的页面相同,我如何重用为桌面创建的控制器和视图在移动和平板电脑设计?

我在_ViewStart.cshtml中执行了以下操作,但这不起作用。

我在/Controllers/RegisterConrtoller.cs

中有控制器

并在/Views/Register.cshtml

中查看
@{
Layout = Request.Browser.IsMobileDevice ? "~/Views/Shared/_MobileLayout.cshtml"
                                        : "~/Views/Shared/_DesktopLayout.cshtml";
}

我的网址指向Mobile/Controller/Register。它试图从Regions部分获取Register页面,因为它在这里注册:

public override void RegisterArea(AreaRegistrationContext context)
        {
            context.MapRoute(
                "Mobile_default",
                "Mobile/{controller}/{action}/{id}",
                new { action = "Index", id = UrlParameter.Optional }
            );
        } 

我希望不从区域中挑选这个特定的寄存器控制器 请告诉我是否有更好的方法来实现这个目标?

我不确定我是否还要做其他事情?

1)我是否需要为移动设备,平板电脑和桌面创建单独的视图?

  • 如果我这样做,我会在三个文件中重复相同的代码吗?

2)我是否需要为移动设备,平板电脑和桌面创建相同的视图和控制器?

  • 我如何为这三个使用不同的布局?

非常感谢任何帮助。

谢谢,

1 个答案:

答案 0 :(得分:0)

Request.Browser.IsMobileDevice要求将浏览器文件包含在服务器上以便检测它们。 .NET附带的文件没有最新的设备,即使您更新它们,您也必须继续更新它们以跟上新兴设备的步伐。

建议您不要扫描特定类型的设备,而是测试特定功能。在这种情况下,您可以使用CSS根据视口的宽度更改布局。无论如何,这很可能是您的应用程序需要进行布局更改的主要因素。

您可以自己编写CSS以进行响应式设计,也可以使用框架。用于开发响应式应用程序的最流行框架是Bootstrap,它本身支持4种不同视口宽度的CSS,允许您逐步使用设备上的可用空间。