2009-07-03 7 views

Répondre

1

Il ne semble pas très judicieux que le contrôleur contrôle la sortie. Tout ce qu'un contrôleur fait est de donner des données de vue à la vue de sortie et de laisser la vue déterminer ce qu'il faut en faire.

Veuillez vous référer au modèle ASP.net MVC par défaut pour savoir comment cela est fait.

5

Je ne crois pas qu'il existe un moyen de simplement définir le titre directement à partir du contrôleur sans configurer vos vues pour accepter certaines sortes de données associées à l'information. Surtout que pour définir le titre, vous aurez besoin de produire des données entre les balises. Cela dit, je suis sûr que vous pouvez faire quelque chose pour vous faciliter la tâche. Je pense plus ou moins à haute voix ici, donc je ne peux pas garantir que cela fonctionnera. Si je suis sûr que je mettrais mon titre est sur toutes les actions que je l'ai, je garderais les balises de titre dans la page principale et créer un attribut personnalisé de sorte que vous pouvez faire quelque chose comme ceci:

[CustomTitleAttribute(Title = "Hello World")] 
public ActionResult Index() 
{ 
    return View(); 
} 

Il serait soyez à vous de mettre en œuvre l'attribut et de configurer comment vous capturez cette information dans la vue et/ou la page maître.

D'une manière générale, puisque vous voudrez peut-être que le titre change sur les pages qui ont des données dynamiques, ce qui précède n'est probablement pas quelque chose que vous devriez faire. Au lieu de cela, incorporez simplement un moyen de déterminer le titre dont vous avez besoin dans un modèle de vue. Peut-être même un modèle de vue de base dont les modèles de vue suivants peuvent hériter.

public class BaseViewModel 
{ 
    public string PageTitle { get; set; } 
    public string PageDescription { get; set; } 
    //etc. 
} 

Puis, dans les vues que vous pouvez le faire, ou même dans votre page maître Je pense:

<title><%= Model.PageTitle %></title> 

Je pense que du point de vue de la séparation des préoccupations (ce qui est un peu le point entier) qui serait être le meilleur moyen d'y aller.

Questions connexes