2009-08-07 8 views

Répondre

1

Essayez ceci:

<%= Ajax.ActionLink("f<br />lastname", ...more stuff 
+1

Vous pourriez avoir à emballer p cela dans @ Html.Raw ces jours-ci. –

0

Vous ne pouvez pas utiliser <br /> parce que la méthode ActionLink (et en fait, je crois que toutes les méthodes html et extension ajax) encode la chaîne. Ainsi, la sortie serait quelque chose comme

<a href="...">f&lt;br /&gt;lastname</a> 

Qu'est-ce que vous pourriez essayer de la place serait une mise en forme:

<%= string.Format(Ajax.ActionLink("f{0}lastname", ...more stuff), "<br />") %> 
+0

Darn ne fonctionne pas. Cela me obtient un - "System.Web.HttpCompileException n'a pas été gérée par le code d'utilisateur erreur CS1010: Newline en constante" – Whozumommy

+0

Hmm, en essayant d'utiliser .Replace au lieu de string.format? Je n'ai pas vraiment travaillé avec les extensions ajax, donc je ne connais pas d'autre moyen de le faire. – Joel

0

Le \n utilisé pour travailler pour moi. Mais maintenant, il semble être déprimé. Alternallavely, vous pouvez utiliser la méthode NewLine, par exemple:

string jay = "This is a" + Environment.NewLine + "multiline" + Environment.NewLine + "statement"; 
0

Avez-vous essayé la combinaison \ r \ n?

3

Vous pourriez avoir à revenir à faire quelque chose comme:

<a href="<%= Url.Action("action") %>">f<br />last</a> 

Et puis fil dans les bits Ajax manuellement.

0

Que diriez-vous:

<%= Server.UrlDecode(Ajax.ActionLink(Server.UrlEncode("f<br/>lastname"), ...more stuff 
0

Cela fonctionne pour moi -

<%= HttpUtility.HtmlDecode(Html.ActionLink("AOT &lt;br/> Claim #", "actionName"))%> 
0

Je pense que la réponse de Andrew Hare est correct. Si vous avez des besoins légèrement plus compliqués, vous avez la possibilité de créer votre propre AjaxHelper ou HtmlHelper. Cela impliquera la création de méthodes d'extension personnalisée qui travaillent sur AjaxHelper et Html, en faisant quelque chose comme:

public static class CustomHtmlHelperExtensions 
{ 
    public static MvcHtmlString FormattedActionLink(this HtmlHelper html, ...) 
    { 
     var tagBuilder = new TagBuilder("a"); 

     // TODO : Implementation here 

     // this syntax might not be exact but you get the jist of it! 
     return MvcHtmlString.Create(tagBuilder.ToString()); 
    } 
} 

Vous pouvez utiliser dotPeek ou votre outil de réflexion .NET favori pour examiner les extensions standards qui viennent avec ASP.NET MVC (par exemple, ActionLink) etc. pour trouver comment Microsoft a implémenté la plupart de ces méthodes d'extension. Ils ont de très bons modèles pour les écrire. Par le passé, j'ai adopté cette approche pour simplifier la sortie du HTML de façon lisible, comme pour l'intégration de Google Maps ou Bing Maps, pour créer des options comme ActionImage, par exemple, @Html.ActionImage(...) ou pour intégrer le formatage Textile HTML en activant une syntaxe telle que @Html.Textile("textile formatted string"). Si vous définissez ceci dans un assembly séparé (comme je le fais), n'oubliez pas de l'inclure dans vos références de projet, puis de l'ajouter également au fichier Web.config du projet.

De toute évidence, cette approche est excessive pour vos besoins spécifiques, et pour cette raison, mon vote est pour l'approche d'Andrew Hare pour votre cas spécifique.

0

Cela fait plusieurs années que la question a été posée, mais j'ai eu des problèmes avec elle.J'ai trouvé la réponse à être (dans MVC):

texte dans votre ActionLink: ... ActionLink ("TextLine1" + Environment.NewLine + "TextLine2", ...

Dans le ActionLink, un classe qui pointe vers un autocommutateur avec cette ligne:

espaces. pré,

C'est ce que j'ai vu des réponses où ils ont mis l'ensemble Actionline dans < pre> </pre> balises, mais qui a causé plus problèmes qu'il a résolu

Questions connexes