You mixed up the parameters. You have to send anonymous object as htmlAttributes parameter.
@Html.ActionLink("Contract", "Contract", "Home", null ,new { id = "lnk_contract" })
Here's the MSDN page for this overload:
http://msdn.microsoft.com/en-us/library/dd504972(v=vs.108).aspx