ASP.NET Actionlink с глификоном и текстом с другим шрифтом
Я хочу представить кнопку с @Html.ActionLink
, но мне нужно иметь шрифт приложения в тексте.
С помощью этого кода:
<span>
@Html.ActionLink(" Create New", "Create", null, new { @class = "btn btn-warning glyphicon glyphicon-plus-sign" })
</span>
Я получаю свою кнопку, но появляется текст Создать новый с семейством шрифтов glyphicon.
Ввод классов глификона в диапазон не изменяет ничего
Ответы
Ответ 1
Вы не должны добавлять класс glyphicon к тегу a.
С сайта Bootstrap:
Не смешивать с другими компонентамиКлассы значков нельзя напрямую комбинировать с другими компонентами. Они не должны использоваться вместе с другими классами на одном и том же элементе. Вместо этого добавьте вложенный <span>
и примените классы значков к <span>
.
Только для использования на пустых элементахКлассы значков должны использоваться только для элементов, которые не содержат текстового содержимого и не имеют дочерних элементов.
Другими словами, правильный HTML для этого, чтобы работать так, как вы хотите, будет: <a href="#" class="btn btn-warning">test <span class="glyphicon glyphicon-plus-sign"></span></a>
Это делает помощник Html.ActionLink
непригодным. Вместо этого вы можете использовать что-то вроде:
<a href="@Url.Action("Action", "Controller")" class="btn btn-warning">
link text
<span class="glyphicon glyphicon-plus-sign" aria-hidden="true"></span>
</a>
Ответ 2
Это работает для меня в MVC 5:
@Html.ActionLink(" ", "EditResources", "NicheSites", new { ViewBag.dbc, item.locale, ViewBag.domainId, domainName = ViewBag.domaiName }, new {@class= "glyphicon glyphicon-edit" })
Первый параметр не может быть пустым или нулевым или он будет дуть.
Ответ 3
Лучше просто написать HTML, а не пытаться заставить его работать с HtmlHelper.ActionLink
...
<span>
<a href="@Url.Action("Create")" class="btn btn-warning">
<span class="glyphicon glyphicon-plus-sign"></span>
Create New
</a>
</span>
Ответ 4
Здесь мой. Вдохновленный Андреем Бурыкиным
public static class BensHtmlHelpers
{
public static MvcHtmlString IconLink(this HtmlHelper htmlHelper, string linkText, string actionName, object routeValues, String iconName, object htmlAttributes = null)
{
var linkMarkup = htmlHelper.ActionLink(linkText, actionName, routeValues, htmlAttributes).ToHtmlString();
var iconMarkup = String.Format("<span class=\"{0}\" aria-hidden=\"true\"></span>", iconName);
return new MvcHtmlString(linkMarkup.Insert(linkMarkup.IndexOf(@"</a>"), iconMarkup));
}
}
Ответ 5
Я должен пойти с подходом @Url.Action
вместо @Html.ActionLink
, например, следующим примером:
<span>
<a href="@Url.Action("Create", new { @class = "btn btn-warning" })"><span class="glyphicon glyphicon-plus-sign"></span> Create New</a>
</span>
Ответ 6
Вы можете использовать простое расширение:
private static readonly String SPAN_FORMAT = "<span class=\"{0}\" aria-hidden=\"true\"></span>";
private static readonly String A_END = "</a>";
public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, object routeValues, String iconName, object htmlAttributes = null)
{
var linkMarkup = htmlHelper.ActionLink(linkText, actionName, routeValues, htmlAttributes).ToHtmlString();
if (!linkMarkup.EndsWith(A_END))
throw new ArgumentException();
var iconMarkup = String.Format(SPAN_FORMAT, iconName);
return new MvcHtmlString(linkMarkup.Insert(linkMarkup.Length - A_END.Length, iconMarkup));
}
Использование:
Html.ActionLink(" ", "DeleteChart", new { Id = _.Id }, "glyphicon glyphicon-trash")
Ответ 7
Давайте попробуем это. Дайте мне знать, если он работает. Спасибо
<style>
span.super a
{
font: (your application font) !important;
}
</style>
<span class="super">
@Html.ActionLink(" Create New", "Create", null, new { @class = "btn btn-warning glyphicon glyphicon-plus-sign" })
</span>
Ответ 8
Как насчет использования Html.BeginForm с FormMethod.Get/FormMethod.Post
@using (Html.BeginForm("Action", "Controller", new { Area = "" },
FormMethod.Get, htmlAttributes: new { title = "SomeTitle" }))
{
<button type="submit" class="btn-link" role="menuitem">
<i class="glyphicon glyphicon-plus-sign"></i>Create New</button>
}
Ответ 9
Попробуйте!
@Html.ActionLink(" Cerrar sesión", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" , @class = "glyphicon glyphicon-log-in" })
Ответ 10
Попробуйте это. Используйте "htmlAttributes"
@Html.ActionLink(" Create New", "Create", null, htmlAttributes: new { @class = "<your class>",@style="font:<your font>" })