直接在.aspx页面上输出静态属性

时间:2012-08-16 23:31:12

标签: c# asp.net static static-members

我想在aspx页面上输出类似的东西(不是代码隐藏):


<asp:text id="txt1" runat="server" value="<%# Fields.FirstName %>">

其中Fields.FirstName是静态类。我该怎么做呢?我收到一条错误消息“当前上下文中不存在名称'Fields'”。我错过了什么?我必须在.aspx页面上包含一些内容吗?

2 个答案:

答案 0 :(得分:2)

你可以试试这个:

<input type="text" value="<%=Fields.FirstName %>" id="txt1" />

但请记住,它不再是服务器控件。

可以使用&lt;%#Fields.FirstName%&gt;服务器控件中的表示法,但只有在从代码隐藏中调用DataBind时才会填充它们。在外部范围内使用单引号是非常自定义的,因为在内部范围中经常需要双引号,如下所示:

<input type="text" value='<%=Fields["FirstName"] %>' id="txt1" />

但是如果不需要引号,它也应该如你所描述的那样工作:

<asp:text id="txt1" runat="server" value="<%# Fields.FirstName %>">

只要在后面的代码中的某处调用txt1.DataBind()

有关详细信息,另请参阅this question

答案 1 :(得分:0)

您需要在aspx页面后面的代码或代码片段中执行此操作。你不能嵌套asp标签(<%# %>)不能嵌套在asp:text元素中。