在MVC4中,我试图显示最终用户正在访问它的环境的View
。我通过访问user agent
字符串并返回相关{{1}来实现此目的。 }。
控制器:
View
Android和iPad string userAgent = Request.UserAgent.ToLower();
if (userAgent.Contains("ipad"))
{
viewPath = "~/Views/Home/Index.Ipad.cshtml";
}
else if (userAgent.Contains("android"))
{
viewPath = "~/Views/Home/Index.Android.cshtml";
}
else
{
viewPath = "~/Views/Home/Index.cshtml";
}
不会有重大差异,因为渲染差异会导致微小的调整。主Views
将包含桌面屏幕允许的更多数据。
这将导致大量代码复制。需要在三个Index.cshtml
中复制一个更改。是否有更容易/更好的方法来做到这一点?
答案 0 :(得分:1)
使用部分视图来处理公共区域的内容会有所帮助 - 因为视图内部的不同会有助于缓解这种情况。
如果可能,渲染差异应该在CSS中处理,以减少任何自定义的需要,但是!