Il mio sito mvc funziona bene con i browser mobili e non mobili; il problema che sto avendo è questo. Ho un paio di azioni che (per ragioni di registrazione) non voglio fare un return RedirectToAction(...);
su così invece ho usato return View("OtherView", model);
questo funzionò fino a quando ho provato su mobile, e non trova OtherView.Mobile.cshtml. C'è un modo per farlo funzionare?Determinare quale ASP.NET MVC View restituire quando non si utilizza la vista di ritorno (modello) ma restituire View ("viewName", modello)
Thise sono i punti di vista
Views/Account/Create.cshtml
Views/Account/Create.Mobile.cshtml
Views/Account/CreateSuccess.cshtml
Views/Account/CreateSuccess.Mobile.cshtml
Questa è l'azione
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
}
Normalmente vorrei solo fare return RedirectToAction(...);
alla pagina di conto dettaglio, ma questo genererà una voce di registro aggiuntivo (per questo utente in lettura) e la pagina di dettaglio non ha accesso alla password. Poiché ActionResult Create
aveva originariamente la password, può mostrarla all'utente per conferma, prima che non sia mai più vista.
Per essere chiari, io non voglio fare if (Request.Browser.IsMobileDevice) mobile else full
perché io possa finire per l'aggiunta di un altro set di punti di vista mobile per per iPad o qualsiasi altra cosa:
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