1

question rapide ...Question rapide. Html.ActionLink et la création de liens internes (#home, #about, etc.)

Comment puis-je créer au mieux des liens internes? Ceci est le balisage que je veux atteindre:

<h3>Title</h3> 
<ul> 
    <li><a href="#prod1">Product 1</li> 
    <li><a href="#prod2">Product 2</li> 
    <li><a href="#prod3">Product 3</li> 
    ... 
    <li><a href="#prod100">Product 100</li> 
</ul> 

<div id="prod1"> 
    <!-- content here --> 
</div> 

En utilisant MVC 2 J'utilise, quel est le meilleur Html Aide à utiliser?

<h3><%= Html.Encode(Model.Title) %> 
<ul> 

<% foreach (var item in Model.Categories) {%> 
    <li><%= Html.RouteLink(item.Description, ????) %></li> 
<%} %> 

</ul> 

Quelle est la meilleure façon d'obtenir une URL vers un lien interne? String.Format un lien à partir de zéro? Il doit y avoir un meilleur moyen.

Répondre

2
public static TagBuilder LocalAnchor(this HtmlHelper helper, string anchor, string text) 
{ 
    var tag = new TagBuilder("a"); 
    tag.MergeAttribute("href", "#" + anchor); 
    tag.SetInnerText(text); 
    return tag; 
} 
+0

Innovati solution. – Armstrongest

+0

Je suppose que vous utiliseriez ceci comme ceci: 'Html.LocalLink (" anchor "," name ")' mais il renvoie une erreur. S'il vous plaît excusez mon ignorance quand il s'agit de MVC ... – Armstrongest

+0

Quelle est l'erreur? Je n'ai eu aucun problème en utilisant ceci avec le moteur de vue de Spark. Btw, c'est ** LocalAnchor **. – Ryan

1

« >

Les fonctions de routage ne sont pas censés pour les liens internes, vous devez les générer vous

+0

' <%: 'est la syntaxe Asp.Net 4 Il serait'.. <% = Html.Encode (item.Category)%> 'Merci pour avoir confirmé ce que je soupçonnais, cependant – Armstrongest

+0

<%: est la syntaxe MVC 2, je l'ai fait dans VS 2008, .NET 3.5 SP 1. Pas de problème –

+0

Vraiment? C'est étrange ... Je ne me souviens pas que ça marche pour moi, je vais devoir l'essayer à nouveau – Armstrongest