我正在嘗試使我的網站移動就緒。我通過創建一個名爲Index.Phone的重複索引頁來完成此操作。進行得順利。除了使用手機提交我的聯繫人頁面時,大多數情況都可以正確檢測。一旦提交了聯繫表格,我正嘗試重定向到一個感謝頁面。我可以在沒有任何問題的情況下在桌面上執當我使用移動設備執行此操作時,它會重定向到我的EmailSent.cshtml(桌面頁面),而不是我的EmailSent.Phone.cshtml。我相信這是由於來自控制器的重定向,而不是來自我認爲會使用我已經整理出來的global.asax的客戶端。MVC4 ASP.NET移動聯繫表格重定向
這是HomeController的作用,這也被調用。
public ActionResult Contact(ContactModel pContactModel)
{
if (ModelState.IsValid)
{
bool myBool = SendEmail(pContactModel);
if (myBool == false)
{
TempData["emailSent"] = "false";
return RedirectToAction("Contact");
}
else
{
return RedirectToAction("EmailSent");
}
}
return View();
}
這是我的桌面EmailSent.cshtml ...
@{
Layout = "~/Views/Shared/_Layout.cshtml";
Page.Title = "desktop";
}
這是我EmailSent.Phone.cshtml而我試圖與上述重定向來調用。
@{
Layout = "../Shared/_Layout.Phone.cshtml";
Page.Title = "mobile";
}
謝謝您給我任何幫助。爲了保持簡單,我省略了兩個文件的正文。
你在哪裏檢查客戶端是否是移動設備?你提到'global.asax',你做了什麼? – greg84
@ greg84他在MVC中使用displayModes。 –
我已經註冊了捆綁包,然後手動設置contextConditions像這樣... var phone = new DefaultDisplayMode(「Phone」) { ContextCondition = ctx => ctx.GetOverriddenUserAgent()!= null && ctx.GetOverriddenUserAgent() 。載有(「iPhone」) };' – user3036965