Как применить класс CSS к Html.ActionLink в ASP.NET MVC?

81

Я создаю приложение ASP.NET MVC, используя VB.NET, и я пытаюсь применить класс css к Html.ActionLink с помощью кода:

<%=Html.ActionLink("Home", "Index", "Home", new {@class = "tab" })%>

Но когда я запускаю код, я получаю следующую ошибку:

Сообщение об ошибке компилятора: BC30988: Введите или "С" ожидается.

Я новичок в MVC и действительно не очень понимаю, что я делаю, поэтому я не вижу, что там не так, потому что я использую код, основанный на примере в другом месте.

  • 0
    Для метода Html.ActionLink такой подписи нет (строка, строка, строка, объект).
  • 0
    Есть ли способ сделать это без использования анонимного класса?
Теги:
asp.net-mvc
html-helper

7 ответов

42
Лучший ответ

Это:

<%=Html.ActionLink("Home", "Index", MyRouteValObj, new with {.class = "tab" })%>

Если VB.net задает анонимный тип, используя

new with {.class = "tab" }

и, как указывает другой, ваш третий параметр должен быть объектом (также может быть анонимным типом).

122

@ewomack имеет отличный ответ для С#, если вам не нужны дополнительные значения объекта. В моем случае я использовал что-то похожее на:

@Html.ActionLink("Delete", "DeleteList", "List", new object { },
new { @class = "delete"})
  • 2
    отлично работает на MVC 4
  • 16
    Если вам не нужны значения маршрута, вы также можете передать значение null в качестве 4-го аргумента: @Html.ActionLink("Delete", "DeleteList", "List", null, new { @class = "delete"})
36

В С# он также работает с нулевым значением в качестве 4-го параметра.

@Html.ActionLink( "Front Page", "Index", "Home", null, new { @class = "MenuButtons" })
  • 0
    Это полезно, потому что, когда вы добавляете ноль, вы получаете стандартный и чистый URL-запрос
29

Этот синтаксис работал у меня в MVC 3 с помощью Razor:

@Html.ActionLink("Delete", "DeleteList", "List", new { ID = item.ID, ListID = item.id }, new {@class= "delete"})
7

Это работает для MVC 5

@Html.ActionLink("LinkText", "ActionName", new { id = item.id }, new { @class = "btn btn-success" })
  • 0
    Для использования в MVC 5 ActionLink с параметрами: @ Html.ActionLink ("Текст ссылки", "Действие", "Имя контроллера", new {myParam = "XXX"}, новый {@style = "color: black" })
3

В VB.NET

<%=Html.ActionLink("Contact Us", "ContactUs", "Home", Nothing, New With {.class = "link"})%>

Это присвоит ссылку css классу "Свяжитесь с нами".

Это приведет к созданию следующего HTML:

<a class="link" href="www.domain.com/Home/ContactUs">Contact Us</a>
0

удалил С#... вот vb.net

<%=Html.ActionLink("Home", "Index", "Home", New With {.class = "tab"}, Nothing)%>
  • 0
    Неверный синтаксис для Vb.net и нет конструктора с этой подписью
  • 0
    извините ... по умолчанию ... я взял c # .. должен был быть более внимательным, читая вопрос ..

Ещё вопросы

Сообщество Overcoder
Наверх
Меню