2010-02-05 7 views
2

Existe-t-il un moyen propre de gérer mon site Web Asp.Net Mvc de fonctionner correctement si javascript est activé/désactivé. Parce que, pour l'instant, je dois faire comme ça pour faire fonctionner les deux. Je pense que cela ne fait pas du code qui est facile maintenable et réutilisable ...Asp.Net Mvc - Passer du serveur à Ajax

if (Request.IsAjaxRequest()) 
{       
    return PartialView("SignUpForm", user); 
} 
else 
{ 
    return View("SignUp", user); 
} 

Répondre

0

Dans cette réponse que je vous ai présenté une technique de fenêtre modale qui fonctionne proprement sans javascript; aucun code ne change si vous souhaitez désactiver toutes les fonctionnalités modales et javascript.

Simple ASP.NET MVC CRUD views opening/closing in JavaScript UI dialog

Les bits qui me semblent le plus important pour vous est ViewEngine personnalisé:

public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache) 
{ 
    //you might have to customize this bit 
    if (controllerContext.HttpContext.Request.IsAjaxRequest()) 
     return base.FindView(controllerContext, viewName, "Modal", useCache); 

    return base.FindView(controllerContext, viewName, "Site", useCache); 
} 

Ce code désactive le javascript et le modèle entourant en chargeant une MasterPage séparée si une demande est de ajax ou pas. En basculant la page maître à l'intérieur de votre ViewEngine personnalisé, vous évitez le code if (Ajax) dans tous vos contrôleurs et gardez les choses propres.