我无法让这个工作,我想显示一个简单的艺术家名单,但总是得到空链接。
foreach (Artist artist in Model)
{%>
<a href="gotosomewhere"><% Html.Encode(artist.Name); %></a>
<%}
我已经调试了它,我确信该模型包含艺术家列表。
谢谢, 彼得
答案 0 :(得分:17)
将其更改为:
<%= Html.Encode( artist.Name ) %>
注意“等于”并且缺少结束分号。这是用于将字符串值输出到响应的格式。另一种格式只是在页面上下文中执行代码,但不会自动写入响应。
答案 1 :(得分:1)
实际上,ASP.NET中的<% some code %>
语法转换为“执行此代码”非常简单。
ASP.NET中的<%= some code %>
语法转换为Response.Write(some code)
。
基于此,很明显为什么<% Html.Encode(...); %>
没有返回任何内容。它正在编码您的文本,但没有人将其写入响应!使用<%= Html.Encode(...) %>
,ASP.NET编译器将其转换为Response.Write(Html.Encode(...))
,这显然会将编码后的文本写入响应。