Mam moją witrynę mvc działa dobrze z przeglądarek mobilnych i innych; problem, który mam, jest taki. Mam kilka akcji, które (z powodów logowania) nie chcę zrobić return RedirectToAction(...);
na tym, zamiast tego użyłem return View("OtherView", model);
działało to dopóki nie wypróbowałem go na urządzeniu mobilnym i nie znalazłem OtherView.Mobile.cshtml. Czy istnieje sposób, aby to zadziałało?Określić, który widok ASP.NET MVC powrócić, gdy nie jest używany powrót Widok (model), ale powrót Widok ("viewName", model)
Thise są poglądami
Views/Account/Create.cshtml
Views/Account/Create.Mobile.cshtml
Views/Account/CreateSuccess.cshtml
Views/Account/CreateSuccess.Mobile.cshtml
To Action
public ActionResult Create(FormCollection form)
{
TryUpdateModel(model);
if(!ModelState.IsValid) { return View(); } // this works correctly
var model = new Account();
var results = database.CreateAccount(model);
if(results) return View("CreateSuccess", model); // trying to make this dynamic
return View(model); // this works correctly
}
Normalnie bym po prostu zrobić return RedirectToAction(...);
na stronie konto szczegół, ale to będzie generować dodatkowy wpis dziennika (dla tego użytkownika czytanie), a strona szczegółów nie ma dostępu do hasła. Ponieważ ActionResult Create
miał pierwotnie hasło, może je pokazać użytkownikowi w celu potwierdzenia, zanim jeszcze nigdy go nie zobaczymy.
Żeby było jasne, nie chcę robić if (Request.Browser.IsMobileDevice) mobile else full
bo mogę skończyć dodając inny zestaw mobilnych widokiem na specjalnie dla iPada lub cokolwiek innego:
Views/Account/Create.cshtml
Views/Account/Create.Mobile.cshtml
Views/Account/Create.iPad.cshtml
Views/Account/CreateSuccess.cshtml
Views/Account/CreateSuccess.Mobile.cshtml
Views/Account/CreateSuccess.iPad.cshtml