I think this answer can help you. Please see ASP.NET MVC3+ section which says:
ASP.NET MVC3+
arguments are in the same order as MVC2, however the id value is no longer
required:
Html.ActionLink(article.Title,
"Item", // <-- ActionMethod
"Login", // <-- Controller Name.
new { article.ArticleID }, // <-- Route arguments.
null // <-- htmlArguments .. which are none. You need this value
// otherwise you call the WRONG method ...
// (refer to comments, below).
)
It looks like that you are not supplied correct overloading for this method.
At first, please use action link with following arguments:
@Html.ActionLink("View Staff", "Index", "StaffController" , new { id = item.UnitCode }, null)
Not last argument which htmlArguments should be null.
Second, maybe in yuor action link third argument which represents controller name is wrong! If is name of your controller class "StaffController" than yuo should use argument "Staff", not "StaffController".
Third, your problem may be caused by different Routing configuration in RouteConfig class.