ASP Hyperlien introuvable dans Site.master.cs?

J'ai ce code dans mon Site.master :

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Site.master.cs" Inherits="SiteMaster" %> 
<!-- ... -->

    [ Log In | 
    Register ]

J'ai ce code dans mon Site.master.cs :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
// ...
protected void Page_Load(object sender, EventArgs e)
{
   //this is just placeholder for now. 
    RegisterHyperLink.NavigateUrl = "Register.aspx?ReturnUrl=" + HttpUtility.UrlEncode(Request.QueryString["ReturnUrl"]);
}

J'obtiens une erreur Compile-Time dans Visual Studio 2010 à l'adresse RegisterHyperLink.NavigateUrl :

"Le nom 'RegisterHyperLink' n'existe pas dans le contexte actuel."

Pas vraiment sûr de ce qui se passe. J'ai vu ce travail dans des pages non-Master, donc cela ne fonctionne-t-il pas en Masters?

Je pense que ça le ferait ...

0
Voir ci-dessus modifier. Cela ne compilera pas.
ajouté l'auteur kevlar1818, source
@TomasVoracek - C'est une propriété ASP.NET qui n'apparaît que si l'utilisateur n'est pas connecté (alias anonyme).
ajouté l'auteur kevlar1818, source
Je suis passé de cette question et j'ai voté pour la fermer. Si jamais je reviens à ça et que je le découvre, je posterai mes résultats.
ajouté l'auteur kevlar1818, source
Y a-t-il une chance que vous puissiez publier les parties pertinentes des deux fichiers?
ajouté l'auteur m.edmondson, source
Qu'est-ce que AnonymousTemplate?
ajouté l'auteur Tomas Voracek, source
AnonymousTemplate est-il simplement dans le balisage ou a-t-il toutes les choses requises comme la méthode InstantiateIn etc? Je pense que vous pouvez l'utiliser uniquement pour les contrôles, pas les pages/pages maîtres.
ajouté l'auteur Tomas Voracek, source
Il se peut que le AnonymousTemplate ne soit pas actif. Êtes-vous connecté?
ajouté l'auteur mafue, source

3 Réponses

  • Ensure that your code-behind is inheriting from System.Web.UI.MasterPage.

  • Ensure the aspx has the appropriate directive added and that it is spelt right with correct case:

    <%@ Master Language="C#" CodeFile="Site.master.cs" Inherits="MasterPage" %>

0
ajouté
Ces deux choses sont là, et ça ne marche toujours pas. Je vais modifier ma question pour refléter cela.
ajouté l'auteur kevlar1818, source
En outre, System.Web.UI.MasterPage ne semble pas exister.
ajouté l'auteur kevlar1818, source
@ kevlar1818 - Cela peut être le problème, c'est une solution ASP.NET plutôt qu'un simple site Web? Essayez de créer une nouvelle maquette en cliquant avec le bouton droit de la souris et en sélectionnant MasterPage. Si vous essayez de comparer avec la page maître de problème pour voir s'il y a des différences.
ajouté l'auteur m.edmondson, source

C'est à cause de ce AnonymousTemplate. Il crée probablement un nouveau conteneur de nommage qui n'est donc pas directement accessible depuis Page_Load.

0
ajouté
Cependant, cela fonctionne très bien, comme je l'ai dit ci-dessus, si ce n'est pas une page maître.
ajouté l'auteur kevlar1818, source

C'est un bug, ajoutez un nouvel HyperLink dans Desing/Source save et réessayez. Supprimer le nouveau lien hypertexte pour terminer

0
ajouté