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.


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).


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"})

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" })

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"})

17

Isso funciona para MVC 5

@Html.ActionLink("LinkText", "ActionName", new { id = item.id }, new { @class = "btn btn-success" })

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>

0

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

<%=Html.ActionLink("Home", "Index", "Home", New With {.class = "tab"}, Nothing)%>

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.