2011-08-01 9 views
5

Dati i seguenti Html.ActionLink:Ottenere testo non formattato usando @ Html.ActionLink in Razor/MVC3?

@Html.ActionLink(Model.dsResults.Tables[0].Rows[i]["title"].ToString(), "ItemLinkClick", 
    new { itemListID = @Model.dsResults.Tables[0].Rows[i]["ItemListID"], itemPosNum = i+1 }, ... 

dati dal modello contiene HTML nel campo del titolo. Tuttavia, non riesco a visualizzare i valori codificati HTML. vale a dire. il testo sottolineato si presenta con lo <u>....</u> attorno ad esso.

Ho provato Html.Raw nella parte di testo di ActionLink, ma non andare.

Qualche suggerimento?

+1

Perché si sta mettendo html nel tuo modello invece della tua vista? Se hai bisogno che sia sottolineato, aggiungi uno stile o attibute di classe per quello. – Phil

+0

I dati provenienti dal modello sono formattati in base a parole chiave. Pertanto, la formattazione è richiesta a quel livello. – ElHaix

risposta

13

Se si desidera ancora utilizzare un helper per creare un collegamento di azione con HTML non elaborato per il testo del collegamento, non credo che sia possibile utilizzare Html.ActionLink. Tuttavia, la risposta a this stackoverflow question descrive la creazione di un helper che esegue questa operazione.

vorrei scrivere il codice HTML di collegamento manualmente se e utilizzare il Url.Action helper che crea l'URL che Html.ActionLink avrebbe creato:

<a href="@Url.Action("ItemLinkClick", new { itemListID = @Model.dsResults.Tables[0].Rows[i]["ItemListID"], itemPosNum = i+1 })"> 
    @Html.Raw(Model.dsResults.Tables[0].Rows[i]["title"].ToString()) 
</a> 
+0

Ottima risposta +1. Stavo cercando una soluzione non basata su Helper in tutto il Web, ma stavo solo ottenendo soluzioni basate su helper. Hai reso la mia giornata! Saluti :) –

0

MVCHtmlString.Create dovrebbe fare il trucco.

0

Utilizzando il link di azione riportato di seguito non è necessario passare HTML nel modello. Lascia che la classe css o lo stile in linea determinino come viene decorato l'href.

@Html.ActionLink(Model.dsResults.Tables[0].Rows[i]["title"], "ItemLinkClick", "Controller", new { @class = "underline", style="text-decoration: underline" }, null) 
+0

La decorazione non è per l'intera stringa, solo una parte di essa, quindi non penso che lo farà. – ElHaix

0

questi sono i casi che si dovrebbe prendere l'altro sentiero

@{ 
    string title = Model.dsResults.Tables[0].Rows[i]["title"].ToString(), 
      aHref = String.Format("/ItemLinkClick/itemListID={0}&itemPosNum={1}...", 
         Model.dsResults.Tables[0].Rows[i]["ItemListID"], 
         i+1); 
} 

<a href="@aHref" class="whatever">@Html.Raw(title)</a> 

Ricorda che aiutanti Razor, aiutare, ma si può ancora fare le cose nel modo HTML.

0

Si potrebbe anche usare questo:

<a class='btn btn-link' 
    href='/Mycontroler/MyAction/" + item.ID + "' 
    data-ajax='true' 
    data-ajax-method='Get' 
    data-ajax-mode='InsertionMode.Replace' 
    data-ajax-update='#Mymodal'>My Comments</a> 
Problemi correlati