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

104

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

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

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

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

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

LiamGu
источник
Для метода Html.ActionLink с (строка, строка, строка, объект) такой сигнатуры нет.
twk
Есть ли способ сделать это без использования анонимного класса?
3ave

Ответы:

48

Это:

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

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

new with {.class = "tab" }

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

Эдуардо Молтени
источник
153

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

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

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

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

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

@Html.ActionLink("Delete", "DeleteList", "List", new { ID = item.ID, ListID = item.id }, new {@class= "delete"})
ewomack
источник
17

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

@Html.ActionLink("LinkText", "ActionName", new { id = item.id }, new { @class = "btn btn-success" })
Сезар Леон
источник
1
Для использования в ActionLink MVC 5 с параметрами: @ Html.ActionLink ("Текст ссылки", "Действие", "Имя контроллера", новый {myParam = "XXX"}, новый {@style = "color: black" })
mggSoft
@mggSoft ДА !! Это сработало для меня с использованием MVC 5. Спасибо
Clancinio
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>
H Сампат
источник
0

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

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