ASP.NET MVC Html助手 - 需要Response.Write吗?

Rob*_*ean 2 asp.net-mvc html-helper

当使用ASP.NET MVC的Html帮助程序时,我需要将它们包装在Response.Write中,否则它们不会出现.然而我在ASP.NET MVC上找到的样本(例如12)似乎没有这样做.某件事情发生了变化,或者我做错了什么?

从样本中我发现它应该是这样的:

<div class="row">
  <% Html.ActionLink("View", "Details", "People"); %>
</div>
Run Code Online (Sandbox Code Playgroud)

但是没有显示任何内容,所以我需要将它包装在Response.Write中,如下所示:

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

Pra*_*yan 16

你需要像这样写:

<div class="row">
    <%= Html.ActionLink("View", "Details", "People") %>
</div>
Run Code Online (Sandbox Code Playgroud)

注意Html.ActionLink之前的<%=.这会将值写入响应.


Meh*_*ari 9

Html.ActionLink不会向响应流写任何内容.它只是返回一个string.要在响应中输出您需要使用的内容Response.Write:

<% Response.Write(Html.ActionLink("View", "Details", "People")); %>
Run Code Online (Sandbox Code Playgroud)

或者,有一个简写Response.Write:

<%= Html.ActionLink("View", "Details", "People") %>
Run Code Online (Sandbox Code Playgroud)

请注意,后一种语法需要表达式而不是语句,因此它不应该有分号.