我正在使用下面的示例代码,并且遇到一个问题,我无法将Request.RawUrl值传递给扩展Control对象的对象(下面的类Test)。
当我使用该行时:
<Test1:Test runat="server" ID="testControl" Target="<%# Request.RawUrl %>"></Test1:Test>
我发现永远不会调用Target属性。
如果我改用这一行:
<Test1:Test runat="server" ID="testControl" Target="<%# Request.RawUrl %> test"></Test1:Test>
将字符串值"<%# Request.RawUrl %> test"
传递给Target属性。
如果我按照在线许多帖子中的说明使用此行:
<Test1:Test runat="server" ID="testControl" Target="<%= Request.RawUrl %>"></Test1:Test>
将字符串值"<%= Request.RawUrl %>"
传递给Target属性。
我需要将Request.RawUrl的值传递给Test控件对象的Target属性。有没有人有任何想法我错了?
控制:
namespace Testing
{
public class Test : Control
{
public Test()
{
}
private string target;
public string Target
{
get { return target; }
set { target = value; }
}
}
}
用户控制:
<%@ Control Language="C#" Debug="true" %>
<%@ Register TagPrefix="Test1" Assembly="Test" Namespace="Testing" %>
<Test1:Test runat="server" ID="testControl" Target="<%# Request.RawUrl %>"></Test1:Test>
答案 0 :(得分:2)
您需要在代码中调用testControl.DataBind()。 &lt;%#在调用DataBind()时设置。 &lt;%=等同于Response.Write()。