Pergunta

Eu estou usando o Microsoft Ajax Template DataView para valores se ligam a um modelo. Eu posso fazer isso e ele funciona como você esperaria:

<h3>{{ID}}</h3>
<p>{{Address}}</p>

No entanto, estou tentando construir um link de ação que tem o ID nele.

<h2><%= Html.ActionLink(Html.AttributeEncode("{{Name}}"), "Index", "Restaurant", new { Id = Html.AttributeEncode("{{ID}}") }, null)%></h2>

O nome é mostrado como o texto do link como eu queria, mas o link não inclui o ID, em vez disso, tem% 7B% 7BID% 7D% 7D

Como eu poderia obter o ID de ser devidamente analisado e adicionado ao link?

Foi útil?

Solução 2

Finalmente comecei a trabalhar, eu não sei se eu estava sendo estúpido ou se é a falta de documentação, mas aqui é como ligar o valor dataview a um link.

 <h2><a sys:href="{{'Restaurant/Index/' + ID}}">{{Name}}</a></h2>

As necessidades reais rota url peça a ser entre aspas simples e você precisa usar sys:. Href em vez de href

Outras dicas

É possível que os suportes extras são jogá-lo fora. Tente atribuir os valores às variáveis ??e usando as variáveis ??do ActionLink. Você poderia fazer a tarefa no topo da vista e, em seguida, reutilizá-los em toda a visão também. para não ter que re-codificá-los em todos os lugares.

  <% var id = Html.AttributeEncode( "{{ID}}" );
     var name = Html.AttributeEncode( "{{Name}}" );
   %>
  <h2><%= Html.ActionLink(name, "Index", "Restaurant", new { Id = id }, null)%></h2>

A sua boa prática incluir '<%= Url.Action("Index", "Restaurant")%>' ao construir um url manual para problemas evitar com o nome do aplicativo e conflitantes urls.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top