Html.Encode不会返回任何东西
问题描述:
我不能得到这个工作,我想显示一个简单的艺术家名单,但总是得到空链接。Html.Encode不会返回任何东西
foreach (Artist artist in Model)
{%>
<a href="gotosomewhere"><% Html.Encode(artist.Name); %></a>
<%}
我已经调试过它,并且我确定Model包含艺术家列表。
谢谢, 彼得
答
将其更改为:
<%= Html.Encode(artist.Name) %>
注意 “等于” 和缺乏收盘分号。这是用于将字符串值输出到响应的格式。其他格式只是在页面上下文中执行代码,但不会自动写入响应。
答
事实上,ASP.NET中的<% some code %>
语法很容易转换为“执行此代码”。
ASP.NET中的<%= some code %>
语法翻译为Response.Write(some code)
。
基于此,变得清楚为什么<% Html.Encode(...); %>
什么都不返回。它是对你的文本进行编码,但没有人将它写入响应中!使用<%= Html.Encode(...) %>
,ASP.NET编译器将其转换为Response.Write(Html.Encode(...))
,这显然会将编码文本写入响应。
您是否有任何其他控件是您从同一位置请求的,正在填充的。确认您正确地将表单传递给控制器? – TStamper 2009-04-14 20:33:02
我有这么多次相同的问题。你盯着一段代码这么长时间,最后它是一个模糊的等号。 – 2009-04-14 21:52:27