2017-02-11 3 views
0

Ich bin ein Neuling für ASP.NET. Also habe ich dieses Tutorial http://asp.net-tutorials.com/user-controls/using/ verfolgt und kam auf ein Problem.Der Typ oder Namespace-Name konnte nicht im globalen Namespace gefunden werden (fehlt eine Assemblyreferenz?)

Als Komplettlösung, fügte ich das Markup auf ASCX-Datei

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="UserInfoBoxControl.ascx.cs" Inherits="UserInfoBoxControl" %> 
<b>Information about <%= this.UserName %></b> 
<%= this.UserName %> is <%= this.UserAge %> years old and lives in <%= this.UserCountry %> 
<My:UserInfoBoxControl runat="server" ID="MyUserInfoBoxControl" /> 

Und ich habe die Eigenschaften in Code-Behind-Datei

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace VeryBasic 
{ 
public partial class UserInfoBoxControl : System.Web.UI.UserControl 
{ 
    private string userName; 
    private int userAge; 
    private string userCountry; 

    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    public string UserName 
    { 
     get { return userName; } 
     set { userName = value; } 
    } 

    public int UserAge 
    { 
     get { return userAge; } 
     set { userAge = value; } 
    } 

    public string UserCountry 
    { 
     get { return userCountry; } 
     set { userCountry = value; } 
    } 
} 
} 
erklärte

Dann diese Benutzerkontrolle mich hinzufügen Ich habe ein Formular erstellt und den Code wie folgt hinzugefügt. (Um sicher zu gehen ich per Drag & Drop die Benutzersteuerung auf das Web-Formular und bearbeitet werden.)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm.aspx.cs" Inherits="VeryBasic.WebForm" %> 
<%@ Register Src="~/UserInfoBoxControl.ascx" TagPrefix="My" TagName="UserInfoBoxControl" %> 
<My:UserInfoBoxControl runat="server" ID="MyUserInfoBoxControl" UserName="John Doe" UserAge="45" UserCountry="Australia" /> 

und der Code-behind des Web-Formulars hier.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace VeryBasic 
{ 
public partial class WebForm : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     // These values can come from anywhere, but right now, we just hardcode them 
     MyUserInfoBoxControl.UserName = "Jane Doe"; 
     MyUserInfoBoxControl.UserAge = 33; 
     MyUserInfoBoxControl.UserCountry = "Germany"; 
    } 
} 
} 

Wie für das Tutorial kann ich das Projekt ausführen. Aber hier bekomme ich einen Fehler.

Fehler 3 Der Typ oder Namespace-Name ‚UserInfoBoxControl‘ nicht im globalen Namensraum (möglicherweise fehlt ein Assemblyverweis?)

Ich habe versucht, mein Bestes zu erklären, den Fehler ich jemand got.Can gefunden werden konnte hilf mir das zu beheben? Danke im Voraus.

Antwort

0

versuchen, den Namespace-Namen ‚userinfoboxcontrol‘ von sehr einfachen Wechsel

+0

Ich löste den Fehler. Ich habe Daten in Markup und Code-Behind-Datei versehentlich eingegeben. Das war der Grund, warum ich den Fehler bekommen habe. Trotzdem danke für die Hilfe. –

0

2 Fehler im Code.

  1. Eigenschaften wie UserName sind UserAge nicht statisch. Sie müssen also eine Instanz von MyUserInfoBoxControl erstellen, um auf sie zuzugreifen.

    MyUserInfoBoxControl obj = new MyUserInfoBoxControl(); obj.UserName = "Jane Doe";

  2. Ich denke, dass Sie sich auf MyUserInfoBoxControl klicken können, whick Fehler geben und Resolve Option auswählen. Verwenden Sie den Auflösungstrick, um den Namespace zu finden, da es schwierig ist sich zu merken, welche Klasse in welchem ​​Namespace ist.

Verwandte Themen