2011-08-01 24 views
5

Dada la siguiente Html.ActionLink:Obteniendo texto en bruto usando @ Html.ActionLink en 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 }, ... 

datos del modelo contiene HTML en el campo de título. Sin embargo, no puedo mostrar los valores codificados en HTML. es decir. El texto subrayado aparece con el <u>....</u> a su alrededor.

He intentado con Html.Raw en la parte de texto de ActionLink, pero no voy.

¿Alguna sugerencia?

+1

qué estás subiendo html en su modelo en lugar de su vista? Si necesita que esté subrayado, agregue un estilo o un atributo de clase para eso. – Phil

+0

Los datos que regresan del modelo están formateados en base a palabras clave. Por lo tanto, el formato se requiere en ese nivel. – ElHaix

Respuesta

13

Si aún desea utilizar un ayudante para crear un enlace de acción con HTML sin procesar para el texto del enlace, entonces no creo que pueda usar Html.ActionLink. Sin embargo, la respuesta al this stackoverflow question describe la creación de un helper que hace esto.

que iba a escribir el enlace HTML manualmente sin embargo y los auxiliares de Url.Action que crea la URL, que Html.ActionLink habría creado:

<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

Excelente respuesta +1. Estaba buscando una solución no basada en Helper en toda la web pero todo estaba recibiendo soluciones basadas en ayuda. ¡Me has alegrado el día! aplausos :) –

0

MVCHtmlString.Create deberían hacer el truco.

0

Usando el actionlink a continuación no necesita pasar html en el modelo. Deje que la clase css o el estilo en línea determinen cómo está decorada la href.

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

La decoración no es para toda la cuerda, solo una parte, así que no creo que sea así. – ElHaix

0

esos son los casos que debe tomar el otro camino

@{ 
    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> 

Recuerde que los ayudantes de afeitar, ayudarle, pero todavía se pueden hacer las cosas de la forma HTML.

0

También es posible usar esto:

<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> 
Cuestiones relacionadas