Question

J'utilise le Microsoft Ajax modèle DataView pour lier des valeurs à un modèle. Je peux le faire et il fonctionne comme on peut s'y attendre:

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

Cependant, je suis en train de construire un lien d'action qui a l'ID en elle.

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

Le nom est affiché comme le texte du lien que je voulais, mais le lien ne comprend pas l'ID, au lieu qu'elle a% 7B% 7BID% 7D% 7D

Comment puis-je obtenir l'ID d'être correctement analysé et ajouté au lien?

Était-ce utile?

La solution 2

Enfin eu à travailler, je ne sais pas si j'étais stupide ou si elle est le manque de documentation, mais voici comment lier la valeur dataview à un lien.

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

La partie réelle de la route URL doit être entre guillemets simples et vous devez utiliser sys. Href au lieu de href

Autres conseils

Il est possible que les supports supplémentaires jettent hors tension. Essayez d'attribuer les valeurs aux variables et en utilisant les variables du ActionLink. Vous pourriez faire la cession en haut de la vue, puis de les réutiliser dans toute la vue aussi bien. pour ne pas avoir à les recoder partout.

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

Sa bonne pratique d'inclure '<%= Url.Action("Index", "Restaurant")%>' lors de la construction d'une url manuel pour éviter des problèmes avec le nom de l'application et urls en conflit.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top