2009-02-17 6 views
0

J'utilise le modèle Microsoft Ajax DataView pour lier des valeurs à un modèle. Je peux le faire et il fonctionne comme on peut s'y attendre:Encodez la valeur de la vue de données dans ASP.NET MVC Actionlink

<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 de être correctement analysé et ajouté au lien?

Répondre

0

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.

0

Il est possible que les supports supplémentaires le rejettent. Essayez d'affecter les valeurs aux variables et d'utiliser les variables dans ActionLink. Vous pouvez effectuer l'affectation en haut de la vue, puis les réutiliser dans la vue. pour éviter de devoir les ré-encoder partout.

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

Il est recommandé d'inclure lors de la création d'une URL manuelle afin d'éviter les problèmes liés au nom de l'application et aux URL en conflit.

+0

Lorsque j'ajoute l'Url.Action, l'URL se termine par/Restaurant3 Où 3 est l'ID correct. Peut-être que je fais ça mal. – ddd

+0

'<% = Url.Action ("Index", "Restaurant")%>' + '/' + ID – Ayo

+0

il construit seulement la structure d'url il ne sait pas si vous allez ajouter quelque chose. – Ayo

Questions connexes