2009-07-19 58 views
2

当为ASP.NET MVC使用Html帮助器时,我需要将它们包装在一个Response.Write中,否则它们不会出现。然而,样本(1 & 2例如)我在网上找到ASP.NET MVC似乎并没有这样做。某处发生了什么变化,或者我做错了什么?ASP.NET MVC Html Helpers - 需要Response.Write吗?

从我觉得这应该是这样的样品:

<div class="row"> 
    <% Html.ActionLink("View", "Details", "People"); %> 
</div> 

但是显示什么,所以我需要将其包装在回复于如下:

<div class="row"> 
    <% Response.Write(Html.ActionLink("View", "Details", "People")); %> 
</div> 

回答

16

您需要在Html.ActionLink前

<div class="row"> 
    <%= Html.ActionLink("View", "Details", "People") %> 
</div> 

注意<%=:他们这样写。这将值写入响应。

+0

您可以在更高版本中使用`<%:` – 2011-07-20 06:07:14

9

Html.ActionLink不向响应流写入任何内容。它只是返回一个string。要输出的响应,你需要使用Response.Write

<% Response.Write(Html.ActionLink("View", "Details", "People")); %> 

或替代,有一个为Response.Write的缩写:

<%= Html.ActionLink("View", "Details", "People") %> 

注意,后者的语法需要表达而不是一份声明中,因此它不应该有分号。