Frage

Ich bin mit dem Microsoft Ajax Template Dataview-Werte in eine Vorlage zu binden. Ich kann dies tun und es funktioniert wie man es erwarten würde:

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

Allerdings Ich versuche, einen Aktionslink zu bauen, der die ID in sich hat.

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

Der Name ist als Linktext angezeigt, wie ich wollte, aber der Link enthält nicht die ID, stattdessen hat sie% 7B% 7BID% 7D% 7D

Wie würde ich die Id richtig zu erhalten analysiert und hinzugefügt, um den Link?

War es hilfreich?

Lösung 2

Schließlich hätte es zu arbeiten, ich weiß nicht, ob ich dumm wurde oder wenn es der Mangel an Dokumentation ist aber hier ist, wie der Dataview-Wert auf einen Link zu binden.

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

Der tatsächliche URL Route Teil muss in einfachen Anführungszeichen sein, und Sie müssen sys verwenden. Href statt href

Andere Tipps

Es ist möglich, dass die zusätzlichen Klammern es weg werfen. Versuchen Sie, die Variablen Werte zuweisen und mit den Variablen in der Action. Sie könnten an der Spitze der Ansicht, die Zuordnung tun und dann in der gesamten Ansicht wiederverwenden sie als gut. davor zu bewahren, sie überall neu zu kodieren.

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

Die gute Praxis '<%= Url.Action("Index", "Restaurant")%>' aufzunehmen, wenn ein manuelle url Aufbau Probleme mit dem Anwendungsnamen und widersprüchlicher URLs zu vermeiden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top