我的网页控件没有出现在我的网页中的其他文件夹中, 但是它可以在同一位置的另一个网页中使用。
我的源代码是这样的:
...
<%Register src="~/UI/Human/HumanUserControl.wuc" TagPrefix="uc1"
TagName="HumanUserControl"/>
...
<uc1:HumanUserControl runat="Server" id="HumanUserControl"/>
...
错误: 请求在此上下文中不可用
答案 0 :(得分:0)
Register
标记上的语法不正确。而且我不确定你为什么使用“.wuc”扩展名而不是默认的“.ascx”。
您需要匹配<% %>
标记,如下所示:
<%@ Register Src="~/UI/Human/HumanUserControl.wuc" TagPrefix="uc1" TagName="HumanUserControl" %>
如果您完全删除了页面中的<%Register .../>
和<uc1 .../>
标记,那么在Visual Studio中,将用户控件从解决方案资源管理器直接拖放到您希望控件的页面上要显示,它会自动为您添加正确的Register
和用户控制标记。
如果这不清楚,那么提供更详细的错误信息,包括抛出异常的代码。
以下工作正常:
<强>〜/ UI /人/ HumanUserControl.ascx 强>
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="HumanUserControl.ascx.cs" Inherits="UserControlTest.UI.Human.HumanUserControl" %>
<asp:Label ID="lblTest" runat="server" />
<强>〜/ UI /人/ HumanUserControl.ascx.cs 强>
namespace UserControlTest.UI.Human
{
public partial class HumanUserControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
lblTest.Text = Request.Browser.Browser;
}
}
}
<强>〜/ Default.aspx的强>
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="UserControlTest._Default" %>
<%@ Register Src="~/UI/Human/HumanUserControl.ascx" TagPrefix="uc1" TagName="HumanUserControl" %>
<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<uc1:HumanUserControl runat="server" id="HumanUserControl" />
</asp:Content>