2010-09-11 24 views
1

J'ai ajouté un nouveau ContentPlaceHolder (HeadContent) juste en dessous du titre afin que je puisse ajouter des fichiers css et js spécifiques à la page. Mais lorsque je crée une nouvelle vue à l'aide de la page maître, elle place le texte par défaut de la mise en page pour que les balises d'ouverture/fermeture HeadContent apparaissent à la fin de la page. Malheureusement, je le vois simplement comme le premier, deuxième et troisième tags et commence à taper dans le code HTML de ma page dans la dernière balise. Mais ce n'est pas le détenteur de place BodyContent parce que c'est le second. Je dois revenir en arrière et les copier/coller au bon endroit. Pouah. Juste pour les coups de pied, j'ai brouillé toutes les étiquettes autour de la page de maître juste pour voir ce qui se passerait dans la vue. Effectivement, VS.NET ignore leur ordre dans la page maître et les réorganise de la même manière à chaque fois.ASP.NET MVC ContentPlaceHolders hors service?

Pourquoi VS ne commande-t-il pas les étiquettes de marque dans le même ordre que dans ma page maquette? En fait, comment puis-je l'arrêter et juste le faire dans l'ordre que j'ai dans ma page maître?

Répondre

0

Ce que Visual Studio est en train de faire (je suppose) est le chargement du modèle de contenu MVC View. Je suppose que la raison pour laquelle tout le contenu est hors service à partir de votre page maître est que Visual Studio Extensiblity charge le modèle puis ajoute ContentPlaceHolders qui ne sont pas dans le modèle après les données de modèle.

Vous pouvez voir à quoi ressemblent les modèles en accédant à votre fichier Visual Studio dans vos fichiers de programme, puis en passant par Common7 \ IDE \ ItemTemplates \ CSharp \ Web \ MVC2.

Il existe également un dossier pour VB. Dans tous les cas, vous pouvez ouvrir les fichiers zip situés dans ce répertoire et descendre jusqu'à ce que vous arriviez à la page .aspx et vous verrez ce que VS est en train d'insérer dans votre projet quand vous faites un Add New/View.