2009-02-17 10 views
2

Quel est le premier point que je peux obtenir par programmation au nom de la page maître qui sera utilisée dans une application asp.net MVC?Obtenir le nom de la page principale dans asp.net MVC

L'idée étant de modifier les données d'affichage utilisées en fonction de la page maître. Je veux être en mesure de définir quelque chose le plus tôt possible afin que les développeurs individuels n'aient pas besoin de savoir pour le peupler. Idéalement, cela se produirait en arrière-plan.

Dans le scénario simpliste, nous aurions différentes pages maîtres pour différents types de pages, par exemple une page par défaut avec un en-tête, leftnav, rightnav et footer ou une page sécurisée qui pourrait manquer le rightnav.

Merci

Répondre

2

Je dirais que le moment où votre page maître est connu serait juste après votre point de vue a été résolu par votre moteur de vue. Vous pouvez configurer votre masterpage lorsque vous appelez la méthode View sur votre contrôleur si:

public ActionResult Index() 
{ 
    return View("index","masterpagename"); 
} 

Je pense que si vous voulez faire quelque chose avec votre masterpage qui serait le chemin. Je ne connais pas le contexte de votre question, mais je suppose que vous voulez manipuler la vue et/ou les données de vue en fonction de la page maître utilisée? Peut-être que la solution à votre problème n'obtient pas par programme le nom de la page principale en premier lieu?

Ajout, après votre modification: Ce que vous pouvez faire est de créer un nouveau contrôleur 'Base' qui hérite de la classe Controller par défaut. Ensuite, vous substituez les méthodes de vue, et dites à vos développeurs d'utiliser que:

public class MySuperController : Controller 
{ 
    protected override ViewResult View(string viewName, string masterName, object model) 
    { 
    // do something here so your masterpage is different depending on the context // 
    string newMasterName = "something-something"; 
    return base.View(viewName, newMasterName, model); 
    } 
} 

Je pense que «toutes les autres méthodes de vue soit routés par ce biais, ou ne sont pas utilisés dans votre cas (ceux qui vous oblige à passer un IView).

+0

Oui, c'est exact, en changeant essentiellement les données d'affichage en fonction de la page maître utilisée. – NikolaiDante

+0

Avez-vous un cas simplifié que vous pourriez ajouter à votre message d'ouverture? Je ne peux pas vraiment voir la raison de faire cela? –

+0

J'ai mis à jour mon message, espérons que cela le rendra plus clair: o) – NikolaiDante

Questions connexes