I think that your problem may be that you don't have a route set up to the action on your controller:
public ActionResult ReportViewer(string projectname, string controllername, string functionname, string ReportType, string ReportName)
For this to work, you would need to have a route set up in your RouteConfig.cs file, e.g.
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("{controller}/{action}/{projectname}/{controllername}/{functionname}/{ReportType}/{ReportName}",
new RouteValueDictionary(new { controller = "ViewReport", action = "ReportViewer" }));
}
And the link that you're generating in your CSHTML file would need to include those parameters in the same order.
Alternatively, you may want to consider removing some of the parameters in your action (perhaps just pass one parameter in, e.g. some kind of report identifier)?