2010-05-21 10 views
1

J'ai un contrôle dans ASP.NET MVC qui crache JavaScript dans l'en-tête de la page (dans la page de vue). Je dérive certaines valeurs du nom de vue actuel (y compris son cas). Disons que nous parlons du chemin:/Home/Index - mon contrôle crache JavaScript pour appeler une fonction avec le nom de la vue - dans son cas exact - par ex. someFunction ('Index'). Maintenant, lorsque j'essaie d'accéder à ma vue en utilisant '/ home/index', le nom de la vue est renvoyé sous la forme 'index', ce qui cause des problèmes dans mon JavaScript, car je m'en remets au JS.Comment trouver le nom exact de la vue dans asp.net mvc (y compris le cas)

Est-il possible de connaître le nom exact de la vue (tel qu'il a été défini) à partir du chemin qui a été mappé dans cette vue.

+0

Voir ici: [? Récupérer le nom de la vue actuelle dans ASP.NET MVC] (http://stackoverflow.com/questions/1268763/retrieve-the-current-view-name-in -asp-net-mvc) –

+0

Cela ne conserve pas le cas. Le nom retourné est dans le cas où il a été tapé, pas comme il a été nommé dans le projet. :-(. –

+0

Ensuite, utilisez la technique ci-dessus et effectuez une recherche récursive à travers les fichiers et dossiers pour trouver un fichier avec un nom correspondant –

Répondre

0

Avez-vous pensé à utiliser un ViewFactory personnalisé qui stocke le nom de la vue quelque part où vous pouvez le récupérer? Quelque chose comme ceci:

public class MyViewFactory : WebFormViewEngine 
{ 
    public override ViewEngineResult FindView(
     ControllerContext controllerContext, 
     string viewName, 
     string masterName, 
     bool useCache 
     ) 
    { 
     controllerContext.Controller.ViewData["viewname"] = viewName; 
     return base.FindView(controllerContext, viewName, masterName, useCache); 
    } 
} 
Questions connexes