我想在 aspx 页面上输出这样的内容(不是代码隐藏):
<asp:text id="txt1" runat="server" value="<%# Fields.FirstName %>">
Fields.FirstName 是一个静态类。我该怎么做呢?我收到一条错误消息,提示“当前上下文中不存在名称‘字段’”。我错过了什么?我必须在 .aspx 页面上包含一些内容吗?
我想在 aspx 页面上输出这样的内容(不是代码隐藏):
<asp:text id="txt1" runat="server" value="<%# Fields.FirstName %>">
Fields.FirstName 是一个静态类。我该怎么做呢?我收到一条错误消息,提示“当前上下文中不存在名称‘字段’”。我错过了什么?我必须在 .aspx 页面上包含一些内容吗?
你可以试试这个:
<input type="text" value="<%=Fields.FirstName %>" id="txt1" />
但是,请记住,它不再是服务器控件。
可以在服务器控件中使用 <%# Fields.FirstName %> 表示法,但是只有当您从代码隐藏调用 DataBind 时才会填充它们。在外部范围中使用单引号是很习惯的,因为在内部范围中通常需要双引号,如下所示:
<input type="text" value='<%=Fields["FirstName"] %>' id="txt1" />
但是,如果不需要引号,它也应该按照您的描述工作:
<asp:text id="txt1" runat="server" value="<%# Fields.FirstName %>">
只要你txt1.DataBind()
在代码后面的某个地方调用。
另请参阅此问题以获取更多信息。
使用完整的类名(包括所有嵌套的命名空间)和 = 符号,您不是数据绑定(由 # 符号表示)。我经常这样做...
<%=Namespace.MyStrings.MyConstantString%>
此外,根据您的页面设置方式,您可能必须在响应写入括号中使用单引号......
<asp:TextBox ID="..." runat="server" Text='<%=Namespace.MyStrings.MyConstantString%>'></asp:TextBox>
更新:
超级hacky,但我让它工作......
<supr:SuprTextBox ID="txt" runat="server" ClientIDMode="Static"></supr:SuprTextBox>
<div id="preload" style="display:none;"><%=Supr.Strings.ASSET_CONTROL_LOCATION%></div>
<script type="text/javascript">
$(function () {
$('#txt').val($('#preload').html());
});
</script>
在 <%= 语法不起作用后不得不自我救赎。
您需要在 aspx 页面上的代码或代码片段中执行此操作。不能嵌套 asp 标签 ( <%# %>
) 不能嵌套在asp:text
元素中。