asp.net中<%=%>的用法疑问???

赤色火焰 2009-07-03 02:24:03
Default.aspx
<asp:TextBox ID="TextBox1" runat="server" Text="<%=strTemp%>" />
Default.aspx.cs
public string strTemp = "测试";

这样写TextBox1中的值显示出来是:"<%=strTemp%>",而不是我想要的:"测试"
要是
<body><%=strTemp%></body>直接这样写就可以显示:"测试"

请教各位这是为什么?
...全文
203 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
maddemon 2009-07-04
  • 打赏
  • 举报
回复
因为先解释控件,再运行aspx的<%=%>代码
在解释控件的时候,Text只是字符串
赤色火焰 2009-07-04
  • 打赏
  • 举报
回复
本人总结了一下,服务器控件TextBox的属性Text不管是用单引号或双引号这样写"<%=strTemp%>"都得不到预期的效果; sp1234 说的方法可行(不愧是四星级的);而如果是html控件的话"<%=strTemp"%>这样写就能够得到预期的效果.
还有就是:
3楼的Airad的写法个人觉得有问题吧!
Default.aspx :
<asp:TextBox ID="TextBox1" runat="server" Text=" <%= strTemp();%>" />

Default.aspx.cs :
function string strTemp()
{
public string strTemp = "测试";
return strTemp ;
}
这是Airad写的方法,我改成
Default.aspx :
<asp:TextBox ID="TextBox1" runat="server" Text=" <%= strTemp();%>" />

Default.aspx.cs :
public string strTemp()
{
string strTemp = "测试";
return strTemp ;
}
好像也是不可以.
还有就是6楼的和11楼的应该都是可行的
赤色火焰 2009-07-04
  • 打赏
  • 举报
回复
谢谢各位的回复,本人其实也并不有这样写过,只是别人问我为什么这样不可以,我是实在回答不上来,可能自己的基础还是不扎实,所以向各们讨教讨教,再次谢谢各位!!!
无爱大叔 2009-07-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sp1234 的回复:]
对服务器控件应该使用HTML code<% #%>形式的表达式,并且在你的需要设置值时随时可以使用 control.DataBind()来设置。例如,你可以在 Page_PreRender 事件处理过程中写:C# codeTextBox1.DataBind();

对于字符串替换表达式HTML code<%=>,默认地asp.net页面在最后临输出时才计算。而控件属性声明的HTML code<% #>表达式则需要你写 DataBind()方法,可以在任何事件中指定它进行计算。
[/Quote]
跟随老大的脚步总是能学到东西
jason819 2009-07-03
  • 打赏
  • 举报
回复
同意chen_ya_ping的写法,其它人说了也白说.
jason819 2009-07-03
  • 打赏
  • 举报
回复
无语,回答问题前先自己试一下,不要乱说!
tingbing 2009-07-03
  • 打赏
  • 举报
回复
呵呵,路过,但是建议对服务器控件不要在前台赋值,在后台赋值更为容易维护
desegou 2009-07-03
  • 打赏
  • 举报
回复
<asp:TextBox ID="TextBox1" runat="server" Text=" <%=strTemp%>" />这个是服务端控件,不能这样写的,改成<input id="Text1" type="text" value=" <%=strTemp%>" />就行了
wsj1983920 2009-07-03
  • 打赏
  • 举报
回复
学习 没这么用过
xml120 2009-07-03
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 fengylm 的回复:]
Text=" <%=%>" 改成Text=' <%=%>'
[/Quote]

对的。用单引号就行了。
haiwangstar 2009-07-03
  • 打赏
  • 举报
回复
What’s the Difference Between <%# i %> and <%= i %>?


We can use two constructs to access page-level variables in an ASP.NET web template:

data binding syntax
Data binding—the hierarchical mapping of control properties to data container
values—is specified by the <%# … %> tags. Code located within a <%# … %>
code block is only executed when the DataBindmethod of its parent control
container is invoked.
code rendering syntax
The <%= … %> code tags output content to the browser. This content could
be hard-coded, or it may contain page-level variables.
In most cases, either of these constructs could be used to achieve the same result, but there are some interesting nuances in the different ways in which each construct
goes about its job.
haiwangstar 2009-07-03
  • 打赏
  • 举报
回复
<%=strTemp%> 把这个改成<%#strTemp%> 然后再Page_Load里调用 DataBind就可以了.
wuyq11 2009-07-03
  • 打赏
  • 举报
回复
TextBox1.Attributes.Add("text", "");
参考
xb2514680 2009-07-03
  • 打赏
  • 举报
回复
Text=" <%=strTemp%>" ,这里不能用双引号,双引号,表示里面是一个字符串,页面自然原样输出里面的内容了,这里想要绑定代码页面的变量,得用单引号,改成Text='<%=strTemp%>'
bangzhu_123 2009-07-03
  • 打赏
  • 举报
回复
学习了
fengylm 2009-07-03
  • 打赏
  • 举报
回复
Text="<%=%>" 改成Text='<%=%>'
kgrass521 2009-07-03
  • 打赏
  • 举报
回复
呵呵 这样写是不是有点脑子短路呢? 要么就是用 text属性等于这个值 或者用客户端控件 而不是服务器控件
zq_wu 2009-07-03
  • 打赏
  • 举报
回复
cs代码
public string StrValue=string.Empty;
private void Page_Load(object sender, System.EventArgs e)
{

StrValue="dddddd";// 在此处放置用户代码以初始化页面
this.TextBox1.DataBind();
}
aspx代码
<asp:TextBox id="TextBox1" runat="server" Text="<%# StrValue %>">
</asp:TextBox>
猿粪来了 2009-07-03
  • 打赏
  • 举报
回复
<asp:TextBox ID="TextBox1" runat="server" Text='<%=strTemp%>' />

改成这样就行了

houzhenya 2009-07-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 airad 的回复:]
Default.aspx :
<asp:TextBox ID="TextBox1" runat="server" Text=" <%= strTemp();%>" />

Default.aspx.cs :
function string strTemp()
{
  public string strTemp = "测试";
  return strTemp ;
}


具体原因,不晓得。可能是和控件,页面输出,类型都有关。。。


[/Quote]
^ _ ^
加载更多回复(8)

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧