As the title says, why do the ASP.NET MVC 4 projects have soooo many NuGet packages?
That's a question you need to ask the designers of the framework.
Which ones are truly important for an empty project that will be a website, no API, etc?
Here's the strict minimum that will allow you to configure routing and define a controller with an action rendering a Razor view:
<packages>
<package id="Microsoft.AspNet.Mvc" version="4.0.20710.0" targetFramework="net40" />
<package id="Microsoft.AspNet.Razor" version="2.0.20710.0" targetFramework="net40" />
<package id="Microsoft.AspNet.WebPages" version="2.0.20710.0" targetFramework="net40" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net40" />
</packages>
or if you prefer only 1/2 of a page:
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…