Html.RouteLink() HtmlHelper отлично подходит для текстовых ссылок. Но как лучше всего связать изображение?Есть ли ASP.NET MVC HtmlHelper для ссылок на изображения?
ответ
здесь мои, его основная функция сделать некоторые перегруженные
public static string ImageLink(this HtmlHelper htmlHelper, string imgSrc, string alt, string actionName, string controllerName, object routeValues, object htmlAttributes, object imgHtmlAttributes)
{
UrlHelper urlHelper = ((Controller)htmlHelper.ViewContext.Controller).Url;
string imgtag = htmlHelper.Image(imgSrc, alt,imgHtmlAttributes);
string url = urlHelper.Action(actionName, controllerName, routeValues);
TagBuilder imglink = new TagBuilder("a");
imglink.MergeAttribute("href", url);
imglink.InnerHtml =imgtag;
imglink.MergeAttributes(new RouteValueDictionary(htmlAttributes), true);
return imglink.ToString();
}
<a href="<%=Url.RouteUrl(...)%>"><img src="..." alt="..." /></a>
+1, как это самый быстрый метод я использовал из так много ответил Вот. Я просто указал действие и контроллер в этом методе, и он работал нормально. – nccsbim071
Создайте собственное вспомогательное расширение.
public static string Image(this HtmlHelper helper, string src, string alt)
{
TagBuilder tb = new TagBuilder("img");
tb.Attributes.Add("src", helper.Encode(src));
tb.Attributes.Add("alt", helper.Encode(alt));
return tb.ToString(TagRenderMode.SelfClosing);
}
Это не создает ссылку на действие изображения. Разве это не тот Зак? –
, даже если это напрямую не отвечает на вопрос. Мне очень нравится этот метод для создания вспомогательного расширения тега. Спасибо :) –
<%= Html.ActionLink(Html.Image(imageUrl, imageAlt), actionName, controllerName) %>
может работать, расширение изображения с фьючерсами по сборке. Или сделайте свое собственное расширение.
No tag-soup. Ницца. –
Кажется, не работает. Метод Html.ActionLink() представляется html для кодирования первого аргумента, поэтому все угловые скобки и т. Д. Экранированы. – macon
<%= Html.RouteLink("PLACEHOLDER", ...).Replace("PLACEHOLDER", "<img src=""..."" alt=""..."" />")%>
Для этого требуется куча уродливых манипуляций с строками. –
У меня нет достаточного количества SO чванства, чтобы добавить комментарий, но это комментарий на MiniScalope's comment above:
UrlHelper urlHelper = ((Controller)htmlHelper.ViewContext.Controller).Url;
Я бы су ggest делает этот метод является расширением HtmlHelper в себе (и упростить), для повторного использования:
private static UrlHelper Url(this HtmlHelper helper)
{
return new UrlHelper(helper.ViewContext.RequestContext);
}
Это обновленная версия, что у меня есть из MiniScalope ответа выше. Я использую VS2010 и ASP.Net MVC 2 Просмотр
public static string ImageLink(this HtmlHelper htmlHelper, string imgSrc, string alt, string actionName, string controllerName, object routeValues, object htmlAttributes, object imgHtmlAttributes)
{
UrlHelper urlHelper = ((Controller)htmlHelper.ViewContext.Controller).Url;
TagBuilder imgTag = new TagBuilder("img");
imgTag.MergeAttribute("src", imgSrc);
imgTag.MergeAttributes((IDictionary<string, string>) imgHtmlAttributes,true);
string url = urlHelper.Action(actionName, controllerName, routeValues);
TagBuilder imglink = new TagBuilder("a");
imglink.MergeAttribute("href", url);
imglink.InnerHtml = imgTag.ToString();
imglink.MergeAttributes((IDictionary<string, string>)htmlAttributes, true);
return imglink.ToString();
}
этот код был протестирован на mvc4 ...
public static MvcHtmlString ImageLink(this HtmlHelper htmlHelper, string imgSrc, string alt, string actionName, string controllerName, object routeValues, object htmlAttributes, object imgHtmlAttributes)
{
UrlHelper urlHelper = ((Controller)htmlHelper.ViewContext.Controller).Url;
var imgTag = new TagBuilder("img");
imgTag.MergeAttribute("src", imgSrc);
imgTag.MergeAttributes((IDictionary<string, string>)imgHtmlAttributes, true);
string url = urlHelper.Action(actionName, controllerName, routeValues);
var imglink = new TagBuilder("a");
imglink.MergeAttribute("href", url);
imglink.InnerHtml = imgTag.ToString();
imglink.MergeAttributes((IDictionary<string, string>)htmlAttributes, true);
return MvcHtmlString.Create(imglink.ToString());
}
- 1. Как перехватить или переопределить генерацию ссылок HtmlHelper в ASP.NET MVC?
- 2. SiteMap HtmlHelper ASP.NET MVC
- 3. Есть ли преимущество использования HtmlHelper в MVC?
- 4. Google Chart HtmlHelper для Asp.net Mvc
- 5. Asp.Net Mvc HtmlHelper testing VeiwContext.Writer.WriteLine
- 6. asp.net MVC 4 - Расширения Htmlhelper
- 7. Расположение экземпляра HtmlHelper для ASP.NET MVC
- 8. ASP.NET MVC jQuery Autocomplete HtmlHelper
- 9. ASP.NET MVC Razor HtmlHelper Синтаксис
- 10. ASP.net MVC HtmlHelper в VB.net
- 11. Используете ли вы какие-либо пользовательские расширения ASP.NET MVC HtmlHelper?
- 12. Справка по ASP.NET MVC HtmlHelper API Design
- 13. Как отображать изображения с использованием HtmlHelper Class- ASP.NET MVC
- 14. Как: создать Ajaxified HtmlHelper в ASP.Net MVC
- 15. ASP.Net MVC HTMLHelper с внешним HTML
- 16. ASP.Net MVC - не распознает этот HtmlHelper
- 17. ASP.NET MVC HtmlHelper htmlAttributes не работает
- 18. HtmlHelper ActionLink опускает область (ASP.NET MVC 4)
- 19. NullReferenceException Проблема с ASP.NET MVC Textbox HtmlHelper
- 20. Есть ли ссылки на ASP.Net MVC-приложения
- 21. ASP.NET MVC 2 сильно типизированных HtmlHelper, индексы
- 22. Unit Test a HtmlHelper в ASP.net MVC
- 23. ASP.NET MVC. Расширение HtmlHelper vs Custom class
- 24. Пользовательский кандидат mvc htmlhelper?
- 25. Есть ли проверка орфографии для ASP.NET MVC?
- 26. MVC .NET 4.0: Ссылки на изображения
- 27. Есть ли тип для ссылок?
- 28. MVC Bootstrap typeahead HtmlHelper
- 29. RenderPartialForEach <T> (..) HtmlHelper для asp.net mvc?
- 30. Есть ли инструмент для проверки времени компиляции ссылок MVC?
Не должно быть HtmlString вместо строки? с возвратом нового HtmlString (imglink.ToString()); ? – Stacker
Просто укажите, что htmlHelper.Image() больше не находится в MVC4. –
cant объявить htmlHelper.Image() – kasim