115

I'm building an ASP.NET MVC application, using VB.NET and I'm trying to apply a css class to a Html.ActionLink using the code:

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

But when I run the code I receive the below error:

Compiler Error Message: BC30988: Type or 'With' expected.

I'm new to MVC and really haven't much of a clue what I'm doing so I can't see what's wrong there as I'm using code based of an example elsewhere.

2
  • There is no such a signature for Html.ActionLink method with (string, string, string, object). Commented Sep 18, 2009 at 13:25
  • Is there anyway to do this without using an anonymous class? Commented Mar 18, 2010 at 21:47

7 Answers 7

161

@ewomack has a great answer for C#, unless you don't need extra object values. In my case, I ended up using something similar to:

@Html.ActionLink("Delete", "DeleteList", "List", new object { },
new { @class = "delete"})
Sign up to request clarification or add additional context in comments.

1 Comment

If you don't need the route values you can also pass null as the 4th argument: @Html.ActionLink("Delete", "DeleteList", "List", null, new { @class = "delete"})
60

In C# it also works with a null as the 4th parameter.

@Html.ActionLink( "Front Page", "Index", "Home", null, new { @class = "MenuButtons" })

1 Comment

This is Helpful because when you add null, you are getting a standard and clean url request
50

It is:

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

In VB.net you set an anonymous type using

new with {.class = "tab" }

and, as other point out, your third parameter should be an object (could be an anonymous type, also).

Comments

35

This syntax worked for me in MVC 3 with Razor:

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

Comments

21

This works for MVC 5

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

2 Comments

For using in a MVC 5 ActionLink with parameters: @Html.ActionLink("Text of the link", "Action", "Controller name", new { myParam = "XXX" }, new { @style = "color:black" } )
@mggSoft YES!! This worked for me using MVC 5. Thank you
3

In VB.NET

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

This will assign css class "link" to the Contact Us.

This will generate following HTML :

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

Comments

1

This will work , tested in MVC core 6

  • Good code readability

  • it allow you set other html attributes , eg i use target attribute to open new tab

  • it allow you set class value , eg i use bootstrap convert hyperlink to button

  • it allow you apply custom inline style

         @Html.ActionLink(
                 linkText: "Button\Hyperlink Label",
                 actionName: "Index",
                 controllerName: "Home",
                 routeValues: new { Id = @item.ToString() },
                 htmlAttributes: new { target = "_blank",@class="btn" , @style="background-color:lightblue;margin: 10px 30px;"})
    

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.