Jak mogę zrobić coś podobnego do Html.ActionLink() z wyjątkiem umieszczenia wygenerowanego linku wokół obrazu zamiast wypluwania linku?Zrobić Html.ActionLink wokół obrazu w ASP.NET MVC?
Odpowiedz
Razor (Zobacz Engine):
<a href="@Url.Action("ActionName", "ControllerName")">
<img src="@Url.Content("~/Content/img/imgname.jpg")" />
</a>
ASPX (Zobacz Engine):
<a href="<%= Url.Action("ActionName", "ControllerName") %>">
<img src="<%= Url.Content("~/Content/img/imgname.jpg") %>" />
</a>
Oczywiście, jeśli można to zrobić więcej niż jeden raz, napisać pomocnika dla niego. I wypełnij pozostałe atrybuty img/a. Ale to powinno dać ci ogólny pomysł.
Spróbuj czegoś takiego:
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);
}
Hope this helps
Można utworzyć HtmlHelper, który może powrócić obraz z linkiem ... Jako parametry można przejść do HtmlHelper wartości, takich jak ścieżki obrazu oraz link aw HtmlHelper będziesz używać StringBuilder do formatu HTML tego połączonego obrazu prawidłowo ...
okrzyki
łatwiej ...
zmiany kodu przez:
<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>
Możemy to zrobić bezpośrednio z CSS zamiast używać wbudowanych stylów. – devlord
Pierwsza odpowiedź udzielona przez @Craig Stuntz jest absolutnie doskonała, ale moim problemem jest to, czy o co zrobisz, jeśli masz Ajax.ActionLink
zamiast Html.ActionLink
. Tutaj wyjaśnię proste rozwiązania dla obu metod. Można to zrobić jak poniżej na Html.ActonLink
:
@Html.Raw(@Html.ActionLink("[replacetext]", "Index", "Home").ToHtmlString().Replace("[replacetext]", "<img src=\"/Contents/img/logo.png\" ... />"))
sama koncepcja może być stosowana dla Ajax.ActionLink
@Html.Raw(@Ajax.ActionLink("[replacetext]", "Index", "Home", new AjaxOptions { UpdateTargetId="dvTest"}).ToHtmlString().Replace("[replacetext]", "<img src=\"/Contents/img/logo.png\" … />"))
więc to będzie dla ciebie łatwe.
Edit:
actionlink Obraz z arkusza stylów lub nazwa klasy
z arkusza stylów
@Html.Raw(@Ajax.ActionLink("[replacetext]", "Index", "Home", new AjaxOptions { UpdateTargetId="dvTest"}).ToHtmlString().Replace("[replacetext]", "<img src=\"/assets/img/logo.png\" style=\"width:10%\" ... />"))
z klasą Nazwa
<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\" ... />"))
Dalsze odniesienia dotyczące actionlink wokół wizyty Obrazek ActionLink around Image in Asp.net MVC
@LenielMacaferi Dzięki. Cieszę się, że masz odpowiednie rozwiązania. – Dilip0165
to dziękuje. Czy istnieje sposób, w jaki mogę dodać styl CSS do obrazu – sumedha
@ Sumedha Zaktualizowałem swoją odpowiedź dotyczącą stylu CSS do obrazu. Mam nadzieję, że będzie użyteczne dla Ciebie. – Dilip0165
Można wykorzystać url.content:
@Url.Content("~/images/img/slide.png")
ten powrót względna ścieżka
- 1. @ Html.ActionLink w ASP.NET MVC 3
- 2. Wstaw Glyphicons bootstrap w @ Html.ActionLink mvc asp.net
- 3. jak wywołać funkcję javascript w html.actionlink w asp.net mvc?
- 4. ASP.NET MVC: Grupowanie klas wokół kontrolera
- 5. ASP.NET MVC - Kłopoty przechodzącej modelu w routeValues Html.ActionLink
- 6. Jak wywołać nazwę trasy w Html.ActionLink asp.net MVC?
- 7. Jak zastosować klasę CSS do Html.ActionLink w ASP.NET MVC?
- 8. Asp.Net-MVC: Jak stylować <% = Html.ActionLink()%> przy pomocy Css?
- 9. Jak zrobić panel aktualizacji w ASP.NET MVC
- 10. Biała przestrzeń wokół obrazu
- 11. asp.net mvc Html.ActionLink() prowadzenie wartość trasa nie chcę
- 12. wstawianie @ Html.DisplayFor w @ Html.ActionLink
- 13. Odpowiednik MVC @ Html.ActionLink poprzez javascript
- 14. Wrap div wokół obrazu
- 15. Asp.Net MVC ActionLink
- 16. Sortowanie tabeli w asp.net MVC
- 17. ASP.Net MVC Jak wyświetlić właściwość obrazu modelu w widoku?
- 18. Przepływowy widok tekstowy wokół obrazu
- 19. Obrót obrazu wokół środkowej CSS3
- 20. Obracanie obrazu wokół osi Y
- 21. ASP.NET MVC ActionLink poza obszarem
- 22. Wybrane menu ASP.NET MVC Pozycja
- 23. ASP.NET MVC: jak dołączyć <span> w łączu z Html.ActionLink?
- 24. Jak zrobić autoryzację w ASP.net MVC 4 już dziś?
- 25. Czy jest mimo to zrobić jeden obraz z 3 adresów URL obrazu przy użyciu asp.net mvc?
- 26. ASP.Net MVC RouteData i tablice
- 27. Jak usunąć obramowanie wokół obrazu w css?
- 28. ASP.NET MVC Sprawdź rolę wewnątrz widoku
- 29. Silnie typowy ActionLink w Asp.Net MVC 2?
- 30. Pobieranie lokalizacji obrazu w Orchard CMS przy użyciu asp.net MVC
Proponuję zmianę 'TagRenderMode.Normal' do' TagRenderMode.SelfClosing' dla img; w przeciwnym razie renderuje się jako '''zamiast' ' –
Dobra sugestia, dziękuję Michael –
Akcja nie jest statyczną metodą klasy UrlHelper, więc powinna być wywołana z obiektu urlHelper. –