2009-09-10 8 views
2

J'ai une page de vue MVC qui utilise une page maître. La page principale n'est pas spécifié en haut de la vue, mais il est spécifié dans le contrôleur en utilisant la méthode suivante sur la classe contrôleur:Préfixe de balise non reconnu ou filtre de périphérique 'asp' - MVC ViewPage avec la page maître spécifiée dans le contrôleur

ViewResult View(string viewName, string masterName, object model) 

Cela fonctionne très bien, mais Visual Studio 2008 donne un avertissement sur la page ASPX : "Préfixe de variable non reconnu ou filtre de périphérique" asp "".

Si j'ajoute la propriété MasterPageFile à la vue, l'avertissement disparaît. Je ne peux pas laisser la page maître spécifiée ici car elle peut être changée dynamiquement.

Pas un gros problème, juste un peu ennuyeux.

Répondre

1

Peut-être se plaindre de l'élément <asp:Content> dans votre affichage. Sans une page maître définie statiquement, cet élément est orphelin dans la mesure où Visual Studio est capable de le dire.

Je ne pense pas qu'il y ait de mal à définir la page maître dans votre vue, puis redéfinir par programmation comme vous avez dans votre méthode d'action.

+0

Oui, c'est cool. Je n'aime pas vraiment avoir la page principale spécifiée dans la vue parce que je pense que c'est un peu trompeur, mais je suppose que je suis plutôt fastidieux. – DownChapel

+0

Ce qui est moins douloureux pour vous: la nature trompeuse d'une page maître jamais utilisée ou l'irritation d'un message d'avertissement inutile. –

0

Je permute dynamiquement des masters tout le temps - vous pouvez laisser cette propriété là-dedans, et elle sera remplacée si nécessaire. Choisissez simplement un fichier maître par défaut et lancez-le avec man. Maintenant, si l'erreur persiste, assurez-vous de ne pas oublier le runat="server" dans votre tag asp:Content. Oui, j'ai perdu une heure de ma vie sur celui-là. . .

Questions connexes