форматирование в теге сервера для привязки списка данных

то, что я пишу на странице aspx,

<asp:HyperLink ID="HyperLink1" runat="server" 
 NavigateUrl="~/Comp/Default.aspx?abc=71&xyz=<%# DataBinder.Eval(Container.DataItem,"TeamId") %>"
>

в надежде создать гиперссылку в результирующей разметке, но это дает ошибку при синтаксическом анализе.

Перепробовал все возможные комбинации кавычек и угловых скобок, ничего не помогло.


person MaxRecursion    schedule 25.04.2012    source источник
comment
Разметка ‹asp:HyperLink ID=HyperLink1 runat=server NavigateUrl=~/Comp/Default.aspx?abc=71&xyz=‹%# DataBinder.Eval(Container.DataItem,TeamId) %››   -  person MaxRecursion    schedule 25.04.2012


Ответы (2)


  1. мне не хватает /> в конце
  2. У вас есть проблема с цитатой ("")
  3. я бы использовал String.Format вместо этого

<asp:HyperLink ID="HyperLink1" runat="server" 
  NavigateUrl='<%# String.Format("~/Comp/Default.aspx?abc={0}&xyz={1}", Eval("id"), Eval("TeamId")) %>' 
/>
person Tim Schmelter    schedule 25.04.2012

Хотя описанное выше работает, с новой функцией Привязка модели из .NET 4.5 вы также можете использовать привязку Item..

<asp:HyperLink ID="HyperLink1" runat="server" 
  NavigateUrl='<%# String.Format("~/Comp/Default.aspx?abc={0}&xyz={1}", Item.id, Item.TeamId) %>' 
/>

(Конечно, если вы не перепутаете кавычки)

person Marcel    schedule 30.06.2015