Jak zastosować klasę CSS do Html.ActionLink w ASP.NET MVC?

104

Buduję się ASP.NET MVC aplikacji za pomocą VB.NET i usiłuję stosuje się klasę css Do Html.ActionLinkużywając kodu:

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

Ale kiedy uruchamiam kod, pojawia się poniższy błąd:

Komunikat o błędzie kompilatora: BC30988: oczekiwano typu lub „z”.

Jestem nowy w MVC i naprawdę nie mam pojęcia, co robię, więc nie widzę, co jest nie tak, ponieważ używam kodu opartego na przykładzie gdzie indziej.

LiamGu
źródło
Nie ma takiej sygnatury dla metody Html.ActionLink z (string, string, string, object).
twk
Czy w ogóle można to zrobić bez użycia klasy anonimowej?
Zapisz

Odpowiedzi:

48

To jest:

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

W VB.net możesz ustawić typ anonimowy za pomocą

new with {.class = "tab" }

i, jak inni zauważają, trzecim parametrem powinien być obiekt (może to być również typ anonimowy).

Eduardo Molteni
źródło
153

@ewomack ma świetną odpowiedź dla C #, chyba że nie potrzebujesz dodatkowych wartości obiektów. W moim przypadku skończyło się na użyciu czegoś podobnego do:

@Html.ActionLink("Delete", "DeleteList", "List", new object { },
new { @class = "delete"})
adamgede
źródło
18
Jeśli nie potrzebujesz wartości trasy, możesz również podać nulljako czwarty argument:@Html.ActionLink("Delete", "DeleteList", "List", null, new { @class = "delete"})
xec
56

W C # działa również z wartością null jako czwartym parametrem.

@Html.ActionLink( "Front Page", "Index", "Home", null, new { @class = "MenuButtons" })
coding_is_fun
źródło
Jest to przydatne, ponieważ po dodaniu wartości null otrzymujesz standardowe i czyste żądanie
adresu
33

Ta składnia działała dla mnie w MVC 3 z Razor:

@Html.ActionLink("Delete", "DeleteList", "List", new { ID = item.ID, ListID = item.id }, new {@class= "delete"})
ewomack
źródło
17

Działa to w przypadku MVC 5

@Html.ActionLink("LinkText", "ActionName", new { id = item.id }, new { @class = "btn btn-success" })
César León
źródło
Do użycia w MVC 5 ActionLink z parametrami: @ Html.ActionLink ("Tekst linku", "Akcja", "Nazwa kontrolera", nowy {myParam = "XXX"}, nowy {@style = "color: black" })
mggSoft
3

W VB.NET

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

Spowoduje to przypisanie „linku” klasy css do Kontaktów.

Spowoduje to wygenerowanie następującego kodu HTML:

<a class="link" href="www.domain.com/Home/ContactUs">Contact Us</a>
H Sampat
źródło
0

usunąłem c # ... tutaj jest vb.net

<%=Html.ActionLink("Home", "Index", "Home", New With {.class = "tab"}, Nothing)%>
rajesh pillai
źródło
Zła składnia dla Vb.net i nie ma konstruktora z tą sygnaturą
Eduardo Molteni
przepraszam ... domyślnie ... wziąłem c # .. powinienem był
uważniej