2011-02-08 4 views
17

È possibile utilizzare tag HTML nel linkText di Html.ActionLink? Per esempio, se volevo parte in grassetto del testo di un link che vorrei provare qualcosa di simile a questo:Utilizzo di tag HTML all'interno di linkText of Html.ActionLink

<%= Html.ActionLink("Some <b>bold</b> text", "Index")%> 

ma che emette solo

Some <b>bold</b> text 

So che potrei farlo utilizzando un anchor tag e impostazione dell'URL con Url.Action, ma volevo solo sapere se era possibile.

+0

Possibile duplicato di [Inserire HTML in Html.ActionLink(), più Nessun testo di collegamento?] (Http://stackoverflow.com/questions/1974980/putting-html-inside-html-actionlink-plus-no-link -testo) – KyleMit

risposta

7

No; non è possibile.
È necessario scrivere manualmente un tag <a>.

+0

Grazie. Volevo solo assicurarmi prima di scrivere manualmente i tag –

+1

Dopo 3 anni è ancora impossibile? – Givi

+5

Dopo 4 anni è ancora impossibile? –

0

Non è possibile, ma è possibile creare uno HtmlHelper per questo, vedere here o utilizzare Url.Action invece quello che vorrei raccomandare.

31

L'HTML helper Html.ActionLink codifica il testo del collegamento che impedisce di incorporare l'HTML nel testo del collegamento.

Per questo stesso motivo non è possibile utilizzare Html.ActionLink e passare un tag per rendere un'immagine un collegamento ipertestuale.

Per lo stile di base di un link, mi consiglia di utilizzare uno dei Html.ActionLink sovraccarica per specificare uno stile CSS tramite la sintassi oggetto anonimo in questo modo ...

@Html.ActionLink("Please Edit Me", "Edit", null, new { style="font-weight:bold;" }) 

Purtroppo, ciò vale in grassetto a tutto il testo del collegamento ipertestuale quando quello che vuoi è solo la parola Modifica per essere in grassetto. Nel qual caso avrei fatto questo ...

<a href="@Url.Action("Edit")">Please <b>Edit</b> Me</a> 

... o questo ...

<a href="@Url.Action("Edit")">Please <span style="font-weight:bold;">Edit</span> Me</a> 
+0

Se Modifica è un'azione di un controller diverso, come faccio a fare riferimento ad esso? Ad esempio, ho due controller: Home e Account. Se attualmente sto visualizzando la pagina di login del controller account e scrivo '@ Url.Action (" Home ")' esegue il rendering di: 'Account/Home'. Mi piacerebbe renderizzare come 'Home/Index' dove' Home' è il controller e 'Index' è l'azione. Ho provato a fare '/ Home/Index'. – crush

+0

Ho trovato la risposta alla mia domanda è di usare il secondo parametro del metodo '@ Url.Action (string, string)'. Il secondo parametro è il nome del controller che si desidera targetizzare. – crush

+1

Il metodo @ Url.Action è l'opzione più flessibile, poiché consente di manipolare ulteriormente il tag di ancoraggio –

0

questo funziona per me:

@Html.Raw(@Html.ActionLink("XXX", "Index", new { }, new { @class = "FormBtn" }).ToHtmlString().Replace("XXX","<u>Back to List</u>")) 

In sostanza utilizzare l'ActionLink per creare l'html con un segnaposto per ciò che si desidera sostituire ('XXX'), quindi convertirlo in una stringa HTML, sostituire il segnaposto con il markup, eseguire il rendering della stringa come HTML.Raw.