use the #
to indicate a line is code only, so:
# var currentController = ViewContext.RouteData.Values["controller"] as string ?? "Home";
# var currentAction = ViewContext.RouteData.Values["action"] as string ?? "Index";
# var currentPage = (currentController + "-" + currentAction ).ToLower();
also, if all you're doing is declaring variables, you could instead just do:
<var currentController="ViewContext.RouteData.Values['controller'] as string ?? 'Home'" />
your usage would look like:
<li class="current?{currentPage == "home-index"}">
${Html.ActionLink("Home", "Index", "Home")}
</li>