First I thought that I'm using the wrong overload again (a very common gotcha in the API - everybody trips over that one). But wouldn't you know? That's not it. I actually had the HTML attributes parameter too and I verified with intellisense that it's the route values I'm entering.

```
@Html.ActionLink("Poof", "Action", "Home", 10, new { @class = "nav-link" })

```

Nevertheless, it seem that the receiving method below only sees *null* and crashes as it can't make an integer out of it.

```
public ActionResult Record(int count) { ... }

```

I've tried a few things: changed parameter type to *int?* and *string* (the program stops crashing but the value is still null). I've tested to package the passed value as an object (with/without @).

```
@Html.ActionLink("Poof", "Record", "Home", 
  new { count = "bamse" }, 
  new { @class = "nav-link" })

```

I can see that the anchor produced has my value as a query string, so the changes are there. However, I still get *null* only in the method.

What am I missing?

The weird thing is that the following works fine.

```
@Html.ActionLink("Poof", "Record", "Home", 
  new Thing(), 
  new { @class = "nav-link" })

public ActionResult Record(Thing count) { ... }

```