Como aplico uma classe CSS para Html.ActionLink no ASP.NET MVC?

104

Estou construindo um aplicativo ASP.NET MVC , usando VB.NET e estou tentando aplicar uma classe css a Html.ActionLinkusando o código:

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

Mas quando executo o código, recebo o erro abaixo:

Mensagem de erro do compilador: BC30988: tipo ou 'com' esperado.

Sou novo em MVC e realmente não tenho muita idéia do que estou fazendo, então não consigo ver o que há de errado lá, pois estou usando um código baseado em um exemplo em outro lugar.

LiamGu
fonte
Não existe tal assinatura para o método Html.ActionLink com (string, string, string, objeto).
twk de
Existe alguma maneira de fazer isso sem usar uma classe anônima?
3Dave

Respostas:

48

Isto é:

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

Em VB.net você define um tipo anônimo usando

new with {.class = "tab" }

e, como outro ponto, seu terceiro parâmetro deve ser um objeto (pode ser um tipo anônimo, também).

Eduardo molteni
fonte
153

@ewomack tem uma ótima resposta para C #, a menos que você não precise de valores de objeto extras. No meu caso, acabei usando algo semelhante a:

@Html.ActionLink("Delete", "DeleteList", "List", new object { },
new { @class = "delete"})
Adamgede
fonte
18
Se você não precisa dos valores de rota, você também pode passar nullcomo o 4º argumento:@Html.ActionLink("Delete", "DeleteList", "List", null, new { @class = "delete"})
xec
56

Em C #, também funciona com um nulo como o 4º parâmetro.

@Html.ActionLink( "Front Page", "Index", "Home", null, new { @class = "MenuButtons" })
coding_is_fun
fonte
Isso é útil porque, ao adicionar nulo, você obtém uma solicitação de url padrão e limpa
Sumanstm21
33

Essa sintaxe funcionou para mim no MVC 3 com Razor:

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

Isso funciona para MVC 5

@Html.ActionLink("LinkText", "ActionName", new { id = item.id }, new { @class = "btn btn-success" })
César León
fonte
Para usar em um ActionLink MVC 5 com parâmetros: @ Html.ActionLink ("Texto do link", "Ação", "Nome do controlador", novo {myParam = "XXX"}, novo {@style = "color: black" })
mggSoft
3

Em VB.NET

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

Isso atribuirá o "link" da classe css ao Fale Conosco.

Isso irá gerar o seguinte HTML:

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

excluiu o c # ... aqui está o vb.net

<%=Html.ActionLink("Home", "Index", "Home", New With {.class = "tab"}, Nothing)%>
rajesh pillai
fonte
Sintaxe ruim para Vb.net e não há construtor com essa assinatura
Eduardo Molteni
tristeza ... por padrão ... eu tirei c # .. deveria ter sido mais cuidadoso ao ler a pergunta ..
rajesh pillai