Подтвердить что ты не робот

ASP.NET Actionlink с глификоном и текстом с другим шрифтом

Я хочу представить кнопку с @Html.ActionLink, но мне нужно иметь шрифт приложения в тексте.

С помощью этого кода:

<span>
    @Html.ActionLink("  Create New", "Create", null, new { @class = "btn btn-warning glyphicon glyphicon-plus-sign" })
</span>

Я получаю свою кнопку, но появляется текст Создать новый с семейством шрифтов glyphicon.

Ввод классов глификона в диапазон не изменяет ничего

4b9b3361

Ответ 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>" })