我正在與一個MVC4 web應用程序有3個點 - 桌面,手機和平板電腦。改變基於設備的控制器
我已經設置了顯示模式,因此視圖根據訪問該站點的設備而變化。我也在使用媒體查詢和jQuery手機來協助移動網站的開發。
當通過電話訪問站點時,向最終用戶顯示的數據庫存儲數據較少。出於這個原因,手機上的控制器不需要大量處理。
當消費應用程序是手機時,是否有任何優雅的方式來改變所使用的控制器或操作方法?我希望URL保持不變,也不要在控制器的設備操作方法中進行檢查。
任何方式來做到上述?
我正在與一個MVC4 web應用程序有3個點 - 桌面,手機和平板電腦。改變基於設備的控制器
我已經設置了顯示模式,因此視圖根據訪問該站點的設備而變化。我也在使用媒體查詢和jQuery手機來協助移動網站的開發。
當通過電話訪問站點時,向最終用戶顯示的數據庫存儲數據較少。出於這個原因,手機上的控制器不需要大量處理。
當消費應用程序是手機時,是否有任何優雅的方式來改變所使用的控制器或操作方法?我希望URL保持不變,也不要在控制器的設備操作方法中進行檢查。
任何方式來做到上述?
例張貼在這裏:
上的用戶重定向到使用過濾器屬性,你的MVC項目的移動領域。
最好的我可以找到,我知道你說你不想更改網址..所以也許你可以寫一個過濾器屬性應用到你的控制器..所以一個動作被忽略?
這樣的事情可能(未經測試),但它的討厭,因爲它必須經常保持,真的只是注入更多的代碼到你的行動管道,可以感覺有點「魔力」,親自我會去使用單獨的區域或許:
public class MobileDeviceAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.HttpContext.Request.Browser.IsMobileDevice)
{
if (filterContext.ActionDescriptor.ActionName == "foo")
filterContext.HttpContext.Response.RedirectToRoute("bar");
}
}
}