Come posso fare qualcosa di simile a Html.ActionLink() eccetto posizionare il collegamento generato attorno ad un'immagine invece di sputare semplicemente il link?Creare un Html.ActionLink attorno a un'immagine in ASP.NET MVC?
risposta
Razor (Visualizza Motore):
<a href="@Url.Action("ActionName", "ControllerName")">
<img src="@Url.Content("~/Content/img/imgname.jpg")" />
</a>
ASPX (Visualizza Motore):
<a href="<%= Url.Action("ActionName", "ControllerName") %>">
<img src="<%= Url.Content("~/Content/img/imgname.jpg") %>" />
</a>
Ovviamente, se si esegue questa operazione più di una volta, scrivere un aiutante per esso. E riempi gli altri attributi di img/a. Ma questo dovrebbe darti un'idea generale.
provare qualcosa di simile:
public static string ActionLinkWithImage(this HtmlHelper html, string imgSrc, string actionName)
{
var urlHelper = new UrlHelper(html.ViewContext.RequestContext);
string imgUrl = urlHelper.Content(imgSrc);
TagBuilder imgTagBuilder = new TagBuilder("img");
imgTagBuilder.MergeAttribute("src", imgUrl);
string img = imgTagBuilder.ToString(TagRenderMode.SelfClosing);
string url = UrlHelper.Action(actionName);
TagBuilder tagBuilder = new TagBuilder("a") {
InnerHtml = img
};
tagBuilder.MergeAttribute("href", url);
return tagBuilder.ToString(TagRenderMode.Normal);
}
Spero che questo aiuti
È possibile creare HtmlHelper che può restituire un'immagine con link ... Come parametri si passa a HtmlHelper valori come percorso di immagine e il link e in HtmlHelper si utilizzerà StringBuilder in formato HTML di quell'immagine collegato correttamente ...
applausi
più facile ...
modificare il codice da:
<p class="site-title">@Html.ActionLink(" ", "Index", "Home",
new
{
style = "background: url('" + Url.Content("~/images/logo.png") + "') no-repeat center right; display:block; height:50px;width:50px;"
})</p>
È possibile farlo direttamente dai CSS anziché utilizzare gli stili in linea. – devlord
La prima risposta data da @ Craig Stuntz è assolutamente perfetto, ma la mia preoccupazione è di circa se che cosa intende fare se avete Ajax.ActionLink
invece di Html.ActionLink
. Qui spiegherò le soluzioni facili per entrambi i metodi. Si può fare come segue per Html.ActonLink
:
@Html.Raw(@Html.ActionLink("[replacetext]", "Index", "Home").ToHtmlString().Replace("[replacetext]", "<img src=\"/Contents/img/logo.png\" ... />"))
stesso concetto può essere applicato per Ajax.ActionLink
@Html.Raw(@Ajax.ActionLink("[replacetext]", "Index", "Home", new AjaxOptions { UpdateTargetId="dvTest"}).ToHtmlString().Replace("[replacetext]", "<img src=\"/Contents/img/logo.png\" … />"))
quindi questo sarà facile per voi.
Edit:
ActionLink Immagine con foglio di stile o nome Classe
con foglio di stile
@Html.Raw(@Ajax.ActionLink("[replacetext]", "Index", "Home", new AjaxOptions { UpdateTargetId="dvTest"}).ToHtmlString().Replace("[replacetext]", "<img src=\"/assets/img/logo.png\" style=\"width:10%\" ... />"))
With Class Nome
<style>
.imgClass {
width:20%
}
@Html.Raw(@Ajax.ActionLink("[replacetext]", "Index", "Home", new AjaxOptions { UpdateTargetId="dvTest"}).ToHtmlString().Replace("[replacetext]", "<img src=\"/assets/img/logo.png\" class=\"imgClass\" ... />"))
Per ulteriori riferimento per quanto riguarda ActionLink intorno visita Immagine ActionLink around Image in Asp.net MVC
È possibile utilizzare url.content:
@Url.Content("~/images/img/slide.png")
questo ritorno percorso relativo
- 1. Non è possibile utilizzare Html.ActionLink in asp.net mvc spark files
- 2. Come chiamare il nome percorso in Html.ActionLink asp.net MVC?
- 3. ASP.NET Razor C# Html.ActionLink per creare un link vuota
- 4. asp.net Html.ActionLink MVC() mantenendo il valore percorso Non voglio
- 5. ASP.NET MVC - difficoltà di minzione modello routeValues Html.ActionLink
- 6. ASP.NET MVC/C#: Posso creare attributi HTML personalizzati validi utilizzando Html.ActionLink()?
- 7. Come si applica una classe CSS a Html.ActionLink in ASP.NET MVC?
- 8. mettendo @ Html.DisplayFor in @ Html.ActionLink
- 9. HTML.ActionLink vs Url.Action in ASP.NET Razor
- 10. Come modificare dinamicamente la classe di un Html.ActionLink in MVC
- 11. Come posso creare un bordo attorno a un LinearLayout Android?
- 12. ASP.NET MVC: compilare un elenco a discesa
- 13. Come posso creare un controllo "generico" in Asp.Net MVC Razor?
- 14. Asp.Net MVC ActionLink
- 15. Come creare un metodo di estensione CheckBoxListFor in ASP.NET MVC?
- 16. Come creare un pannello di aggiornamento in ASP.NET MVC
- 17. ASP.NET MVC ActionLink area esterna
- 18. MVC equivalente di @ Html.ActionLink tramite javascript
- 19. Come creare cerchi attorno a un cerchio con css, javascript?
- 20. MVC Html.ActionLink ignora il parametro di controllo
- 21. ASP.NET MVC - Passare oggetto array come valore di instradamento all'interno di Html.ActionLink (...)
- 22. Aggiungi classe CSS a Html.ActionLink
- 23. ASP.NET MVC: come includere <span> nel collegamento da Html.ActionLink?
- 24. ASP.NET MVC: come creare un'istanza UrlHelper utilizzabile?
- 25. come passare il valore di testo utilizzando @ Html.ActionLink in asp.net MVC 3
- 26. Come inserisco un'immagine usando HTML.ActionLink?
- 27. Ajax.ActionLink vs Html.ActionLink + Jquery.Ajax call
- 28. ASP.NET MVC 3: Come forzare un ActionLink a fare un HttpPost invece di un HttpGet?
- 29. Come generare un collegamento pagina popup in ASP.NET MVC
- 30. ActionLink fortemente tipizzato in Asp.Net MVC 2?
Suggerisco di cambiare 'TagRenderMode.Normal' a' TagRenderMode.SelfClosing' for the img; altrimenti viene visualizzato come '' invece di ' ' –
Buon suggerimento, grazie Michael –
L'azione non è un metodo statico della classe UrlHelper, quindi dovrebbe essere chiamato da un oggetto urlHelper. –