O UserControl personalizado não está a registar-se em ASP.NET
Update: J0e3gan tentou o meu código em seu próprio projeto ,e funcionou bem( com uma pequena correção), então o problema parece ser com o Visual Studio em si, ao invés do código ou marcação. Eu tentei adicionar um novo UserControl
também, e também não foi reconhecido. No entanto, VS está reconhecendo o AjaxControlToolkit
que está registrado em web.config
Muito bem. [/update]
AdminControls
ao site em que estou a trabalhar, mas continuo a receber o seguinte erro:
Estou a executar o Visual Studio Pro 2013, e o projecto é uma aplicação Web. Procurei na Web soluções, principalmente aqui na Stack Overflow, e tentei todas as que encontrei, mas não tive sorte. Deve haver alguma coisa que me esteja a escapar. Aqui está a marca paraO elemento 'ControlName' não é um elemento conhecido. Isto pode ocorrer se houver um erro de compilação no site, ou na web.falta o ficheiro de configuração.
AdminControls
:
<asp:Table ID="tblAdminControls" runat="server">
<asp:TableRow>
<asp:TableCell style="min-width: 50%;"> </asp:TableCell>
<asp:TableCell style="width: 6em" id="tdCP" runat="server">
<asp:Button Font-Bold="true" Font-Size="Smaller" Font-Overline="false" ID="btnCP"
runat="server" CssClass="Button" Text="Control Panel" />
</asp:TableCell>
<asp:TableCell style="width: 5em">
<asp:Button Font-Bold="true" Font-Size="Smaller" Font-Overline="false" ID="btnLogOut"
runat="server" CssClass="Button" Text="LogOut" />
</asp:TableCell>
</asp:TableRow>
</asp:Table>
E aqui está o codebehind para ele:
Public Class AdminControls
Inherits System.Web.UI.UserControl
Private Sub Page_Init(sender As Object, e As EventArgs) Handles Me.Init
If Request.ServerVariables("SCRIPT_NAME") = "/frmAdminCP.aspx" Then
tdCP.Visible = False
End If
End Sub
Private Sub btnCP_Click(sender As Object, e As EventArgs) Handles btnCP.Click
Response.Redirect("frmAdminCP.aspx", False)
End Sub
Private Sub btnLogOut_Click(sender As Object, e As EventArgs) Handles btnLogOut.Click
Session.RemoveAll()
Session.Abandon()
Response.Redirect("frmLogin.aspx", False)
End Sub
End Class
Tentei registar-me tanto no ficheiro como na página. Aqui estão os bits relevantes do Arquivo web.config
:
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
<controls>
<add tagPrefix="ajaxToolkit" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" />
<add tagPrefix="klc" tagName="AdminHeader" src="~/AdminControls.ascx" />
</controls>
</pages>
E por último, mas não menos importante, aqui está uma das páginas que estou a tentar colocar em:
<%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false"
EnableEventValidation="false" Inherits="ProjectName.frmAdminCP" CodeBehind="frmAdminCP.aspx.vb" %>
<%@ Register TagPrefix="klc" TagName="AdminHeader" Src="~/Controls/AdminControls.ascx" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<div id="content">
<h1>Admin <span class="pagetitle">Control Panel</span> </h1>
<klc:AdminHeader runat="server" id="ahControls" />
<div>
<h2>Users</h2>
<a href="frmUserList.aspx">View Existing Users</a><br />
<a href="frmUserMod.aspx">Add a New User</a>
<h2>Usage Reports</h2>
<a href="frmReportTrack.aspx">View User Activity Report</a><br />
<a href="frmProjectLog.aspx">View Administrative Log</a>
<h2>Project Management</h2>
<a href="frmProjectList.aspx">View Projects</a><br />
<a href="frmDocManagement.aspx">Manage Project Files</a>
</div>
</div>
</asp:Content>
Tentei todas as soluções que encontrei, mesmo que parecessem ridículas. Eu tenho ...
-
Purgou o esconderijo do esquema.
- limpo e reconstruído o solucao. Estúdio Visual Reiniciado. Reiniciei o meu computador.
- moveu o ficheiro para uma sub-pasta.
- cortar e colar o código e marcar Para o mesmo lugar e voltar a guardar os arquivos.
tagPrefix
não aparece na suspensão Intellisense auto-completa.
Alguém consegue ver algum erro que eu tenha cometido, ou alguém sabe de uma solução que ainda não tentei? Não tentei matar um galo negro por causa do meu PC. ainda, mas estou a aproximar-me.
1 answers
Usando o código que forneceu, incluí com sucesso o seu controlo de utilizador numa imagem de página abaixo. Não consegui reproduzir o erro que estás a ter.
O único erro que encontrei ao longo do caminho resultou dos dois caminhos diferentes que usaste para AdminControls.ascx
:
-
src="~/AdminControls.ascx"
o teu trecho. -
Src="~/Controls/AdminControls.ascx"
na tua Página excerpt.
Uma vez que fiz os caminhos consistentes (uns com os outros e o projecto de aplicação web scrach que eu criei), AdminControls
apareceu em frmAdminCP.aspx
Muito bem.
AdminControls.ascx
, added a new Web Form item named frmAdminCP.aspx
, and pasted your code in all the appropriate places.