J'utilise Microsoft Visual basic 2010 pour un site asp.net utilisant C#. J'utilise la configuration asp.net pour l'enregistrement de l'utilisateur. J'ai un formulaire de commentaires que je veux apparaître seulement si un utilisateur est connecté.Vérifiez si l'utilisateur est connecté
Maintenant, il y a une chose d'aide de boîte à outils appelée Vue de connexion qui fait exactement ce que je veux mais dès que je mets un formulaire dans le code ne compilera pas car il ne peut pas trouver les champs de la zone de texte.
je suit dans NewsArticle.aspx:
<asp:LoginView ID="LoginView1" runat="server">
<AnonymousTemplate>
<div class="postcomment">
<p><a href="/account/Login.aspx">Login</a> or <a href="/account/Register.aspx">register</a> to post a comment.</p>
</div>
</AnonymousTemplate>
<LoggedInTemplate>
<div class="formcomment">
<asp:TextBox ID="txtTitle" textMode="SingleLine" runat="server"></asp:TextBox>
<asp:TextBox ID="txtComment" TextMode="MultiLine" runat="server"></asp:TextBox>
<asp:Button ID="cmdUpdate" runat="server" Text="Add Comment" onclick="cmdUpdate_Click" />
</div>
</LoggedInTemplate>
Sur les NewsArticle.aspx.cs je:
protected void cmdUpdate_Click(object sender, EventArgs e) {
// Get user id
Guid gUser;
MembershipUser user = Membership.GetUser(Page.User.Identity.Name);
gUser = (Guid)user.ProviderUserKey;
// get article id
int articleid = Convert.ToInt16(Request.QueryString["id"]);
// Add to db
FrontendTableAdapters.NewsCommentTableAdapter ta = new FrontendTableAdapters.NewsCommentTableAdapter();
ta.Insert1(articleid, gUser.ToString(), txtTitle.Text, txtComment.Text);
// Redirect back to article
Response.Redirect(String.Format("NewsArticle.aspx?id={0}#comments", articleid));
}
Si je prends la forme de asp: LoginView fonctionne correctement. A l'intérieur, je reçois ce qui suit:
Error 2 The name 'txtTitle' does not exist in the current context NewsArticle.aspx.cs 59 53 Figmentville
Error 3 The name 'txtComment' does not exist in the current context \NewsArticle.aspx.cs 59 68 Figmentville
Merci d'avoir répondu si rapidement. J'ai essayé ce qui suit: ta.Insert1 (articleid, gUser.ToString(), LoginView.FindControl (txtTitle) .Text, oginView.FindControl (txtComment) .Text); mais cela montre toujours la même erreur: S. – daveredfern
Pouvez-vous spécifier le code réel et les messages d'erreur. Je crois que cela devrait être: LoginView1.FindControl ("txtComment") Si cela échoue, le message d'erreur devrait être une exception Nullreference. –
J'ai les éléments suivants: LoginView1.FindControl (txtTitle) .Text. L'erreur est: Erreur 2 Le nom 'txtTitle' n'existe pas dans le contexte actuel \t NewsArticle.aspx.cs 59 76 Figmentville – daveredfern