Я работаю на 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;
}
Этот новый двигатель будет необходимо добавить к мобильной системы загрузки стропальщиком и создайте сенсорные виды.
Прежде чем делать это, вы должны подумать, если вы хотите разделить устройства. Например, Nokia X3-02 имеет сравнительно небольшой экран, но будет представлен с тем же видом, что и iPad. Возможно, вам стоит подумать об использовании ОС устройства, то есть Request.Browser["PlatformName"]
И наконец, версия 2DDreerees.mobi Foundation 2 представляет наши собственные данные устройства, в которых используются разные имена функций из предыдущего. Вы можете прочитать mroe об этом на 51Degrees.mobi
не работает на любом устройстве Android, не работает на ноутбуке Windows 7 с сенсорным экраном :( –
Свойство больше не является Request.Browser ["IsTouchScreen"], а теперь ["HasTouchScreen"] и не предоставляется в их бесплатной версии Lite. –