私は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のようなものと同じビューで表示されます。おそらく、デバイスのOSの使用を検討する必要があります。Request.Browser["PlatformName"]
最後に、51Degrees.mobi Foundationバージョン2は、以前のものとは異なる機能名を使用する独自のデバイスデータを導入しています。あなたは51Degrees.mobiでそれについてmroeを読むことができます