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

ASP.NET MVC3 Razor - стиль Html.ActionLink

Я пытаюсь установить стиль ссылки действия так:

  <text><p>Signed in as @Html.ActionLink(Context.User.Identity.Name,"Index",new { Controller="Account", @style="text-transform:capitalize;" })</p>

Я ожидаю, что это будет отображаться как

<p>Signed in as <a href="Index" style="text-transform:capitalize;">MyName</a></p>

Однако то, что сгенерировано,

<p>Signed in as <a href="/Account?style=text-transform%3Acapitalize%3B">MyName</a></p>

со стилем, добавленным к URL-адресу. Что я делаю неправильно?

4b9b3361

Ответ 1

Здесь подпись.

public static string ActionLink(this HtmlHelper htmlHelper, 
                                string linkText,
                                string actionName,
                                string controllerName,
                                object values, 
                                object htmlAttributes)

Что вы делаете, это смешивание values и htmlAttributes вместе. values предназначены для маршрутизации URL.

Возможно, вы захотите сделать это.

@Html.ActionLink(Context.User.Identity.Name, "Index", "Account", null, 
     new { @style="text-transform:capitalize;" });

Ответ 2

Пример VB:

 @Html.ActionLink("Home", "Index", Nothing, New With {.style = "font-weight:bold;", .class = "someClass"})

Пример Css:

.someClass
{
    color: Green !important;
}

В моем случае я обнаружил, что мне нужен важный атрибут, чтобы переместиться на сайт site.css a: link css class

Ответ 3

Возрождение старого вопроса, потому что он, кажется, появляется в верхней части результатов поиска.

Я хотел сохранить эффекты перехода, сохраняя при этом возможность стилизовать actionlink, поэтому я придумал это решение.

  • Я завернул ссылку на действие с div, который будет содержать родительский стиль:
<div class="parent-style-one">
      @Html.ActionLink("Homepage", "Home", "Home")
</div>
  1. Далее я создаю CSS для div, это будет родительский css и будет наследоваться дочерними элементами, такими как ссылка действия.
  .parent-style-one {
     /* your styles here */
  }
  1. Поскольку все ссылки на действия есть, это элемент, который разбивается на html, поэтому вам просто нужно настроить таргетинг на этот элемент в вашем выборе css:
  .parent-style-one a {
     text-decoration: none;
  }
  1. Для эффектов перехода я сделал это:
  .parent-style-one a:hover {
        text-decoration: underline;
        -webkit-transition-duration: 1.1s; /* Safari */
        transition-duration: 1.1s;         
  }

Таким образом, я нацелен только на дочерние элементы div в этом случае на ссылку действия и все еще могу применять эффекты перехода.