2014-05-11 2 views
3

업데이트 : J0e3gan은 자신의 프로젝트에서 내 코드를 시험해 보았으므로 미세 조정을 통해 문제가 해결되었으므로 문제는 Visual Studio 자체가 아니라 Visual Studio 자체에서 발생합니다. 코드 또는 마크 업. 새로운 UserControl을 추가하려고 시도했는데 인식되지도 않았습니다. 그러나 VS는 에 등록 된 AjaxControlToolkit을 인식하고 있습니다. [/ 업데이트]사용자 정의 UserControl이 ASP.NET에 등록되어 있지 않습니다.

내가 일하고 있어요 사이트에 AdminControls라는 이름의 사용자 정의 UserControl를 추가하기 위해 노력하고있어,하지만 다음과 같은 오류가 계속 :

Element 'ControlName' is not a known element. This can occur if there is a compilation error in the Web site, or the web.config file is missing.

내가 비주얼 출마를 Studio Pro 2013 및 프로젝트는 웹 응용 프로그램입니다. 나는 웹에서 스택 오버 플로우에 대한 해결책을 찾아 보았고 찾을 수있는 모든 것을 시도했지만 아무런 운이 없었습니다. 내가 잃어버린 뭔가가있을거야. 여기

AdminControls의 마크 업입니다 :

<asp:Table ID="tblAdminControls" runat="server"> 
    <asp:TableRow> 
     <asp:TableCell style="min-width: 50%;">&nbsp;</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> 

그리고 여기에 대한 코드 숨김입니다 :

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 

내가 시도한 web.config 파일과 페이지에 AdminControls 모두 등록 . 여기,

<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"> 
    <controls> 
     <add tagPrefix="ajaxToolkit" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" /> 
     <add tagPrefix="klc" tagName="AdminHeader" src="~/AdminControls.ascx" /> 
    </controls> 
</pages> 

그리고 마지막으로 내가에 AdminControls을 넣어 노력하고있어 페이지 중 하나입니다 : 여기에 관련된 web.config 파일에서 비트의 내가 시도

<%@ 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>&nbsp;&nbsp;&nbsp;&nbsp;</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> 

마다 내가 '해결 그들이 어리석은 것처럼 보였을지라도 만나러왔다. 나는 :

  • 스키마 캐시를 제거했습니다.
  • 솔루션을 정리하고 다시 작성하십시오.
  • Visual Studio를 다시 시작했습니다.
  • 내 컴퓨터를 다시 시작했습니다.
  • 파일을 하위 디렉토리로 이동했습니다.
  • 코드와 마크 업을 잘라내어 동일한 위치에 붙이고 파일을 다시 저장합니다.

빌드 오류가없고 tagPrefix은 Intellisense 자동 완성 드롭 다운에 표시되지 않습니다.

누구든지 내가 작성한 오류를 볼 수 있습니까? 아니면 아직 시도하지 않은 해결책을 아는 사람이 있습니까? 나는 아직 PC를 통해 검은 수탉을 도살하려하지 않았지만 가까이 가고있다.

답변

0

제공된 코드를 사용하여 아래의 스크린 샷에 사용자 정의 컨트롤을 성공적으로 포함 시켰습니다. 오류가 재현되지 않았습니다.

내가 길을 따라 발생하는 유일한 오류는 AdminControls.ascx에 사용되는 두 개의 서로 다른 경로를 막아야 :

  • src="~/AdminControls.ascx" 당신의 Web.config 발췌.
  • Src="~/Controls/AdminControls.ascx" (frmAdminCP.aspx) 페이지 발췌. 나는 일관 (서로 내가 만든 scrach 웹 응용 프로그램 프로젝트로) 경로를 만든 후에는

AdminControls는 잘 frmAdminCP.aspx에서 나타났다 :

PoC frmAdminCP.aspx with AdminControls User Control

을 경우 그것을 위해, 당신을 도와줍니다 내 성의 검사 .NET 4.0을 대상으로하는 Visual Studio 2013에서 새로운 ASP.NET Web Forms 응용 프로그램 프로젝트를 간단히 만들고 AdminControls.ascx이라는 새로운 Web Forms 사용자 정의 컨트롤 항목을 추가하고 frmAdminCP.aspx이라는 새로운 Web Form 항목을 추가 한 다음 모든 코드를 붙여 넣었습니다 적절한 장소.

+1

사용해 주셔서 감사합니다. 다른 경로는 문제를 해결하기 위해 시도한 여러 가지 시도의 결과입니다. 그것을 잡아 주셔서 감사합니다. 실험 결과에 따르면 문제는 코드 자체가 아니라 Visual Studio에서만 발생합니다. 나는 그것을 반영하기 위해 질문을 업데이트 할 것이다. – FreeRangeOyster

관련 문제