2010-08-13 2 views
3

У меня есть этот простой фрагмент с ActionLink, который должен отображать некоторый текст в качестве ссылки, но он не работает.Html.ActionLink ничего не отображает

Код фрагмента кода.

<div id = "Div1"> 
     <table id = "Table1"> 
      <% while ((category = SomeNamespace.Helper.GetNextCategory(categoryIndex++)) != null) 
       { %> 
       <tr> 
        <td class = "catalogCell"> 
         <% Html.ActionLink(category.Name, 
           "DisplayCategory", 
           "Catalog"); %> 
        </td> 
       </tr> 
      <% } %> 
     </table> 
    </div> 

ответ

2

Вам нужен знак =:

<%= Html.ActionLink(category.Name, 
        "DisplayCategory", 
        "Catalog") %> 
+0

Я тоже это пробовал. Но когда я это делаю, это дает мне исключение, говорящее: «) ожидалось». –

+0

Священная корова, я сделал это снова и удалил полуколонку в конце вызова метода, и это сработало. Странный! –

+0

Правильно, я удалил это из своего примера. – RedFilter

1

Используйте <%: ... %> стиль и быть уверенным, чтобы удалить точку с запятой (;) в конце заявления.

+0

Да, я сделал это. Но почему? –

+1

Какая часть? '<% ... %>' является короткой рукой для '<% = Server.HtmlEncode (...)%>' или, другими словами, изнутри out, HtmlEncode эти данные, а затем записывать его на выход. В этом отношении это просто короткая рука для этого: '<% Response.Write (Server.HtmlEncode (...)); %> ' Вам не нужна точка с запятой (;) в конце, потому что понятно, что если вы делаете' <%= ... %> 'или' <%: ... %> ', что вы на самом деле выполняете' Response.Write (.. .), и поэтому вы получаете бесплатную полуточку. какая сделка! В течение вашего жизненного цикла эти ключевые изменения в руке складываются. –

Смежные вопросы