Я работаю на 51Degrees.mobi.Вы можете определить, является ли устройство сенсорным экраном, используя Request.Browser["IsTouchScreen"]
Однако использование этого элегантно в MVC немного сложнее.Если посмотреть на источник MobileCapableViewEngine, кажется, что вы можете создать новый движок, скопировав мобильный движок и изменив метод FindView:
public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName,
string masterName, bool useCache)
{
string overrideViewName = controllerContext.HttpContext.Request.Browser["IsTouchScreen"] == "True"
? viewName + ".Touch"
: viewName;
ViewEngineResult result = NewFindView(controllerContext, overrideViewName, masterName, useCache);
// If we're looking for a Touch view and couldn't find it try again without modifying the viewname
if (overrideViewName.Contains(".Touch") && (result == null || result.View == null))
{
result = NewFindView(controllerContext, viewName, masterName, useCache);
}
return result;
}
Затем этот новый движок необходимо добавить в загрузку мобильных движков.привязать и создать Touch view.
Прежде чем делать это, вам следует подумать, если вы хотите разделить устройства.Например, Nokia X3-02 имеет сравнительно небольшой экран, но будет представлен в том же виде, что и iPad.Возможно, вам следует рассмотреть возможность использования ОС устройства, например Request.Browser["PlatformName"]
Наконец, 51Degrees.mobi Foundation версии 2 представляет наши собственные данные устройства, которые используют имена других возможностей, отличные от предыдущих.Вы можете прочитать об этом по адресу 51Degrees.mobi