Is the code parameterizable? That is can you control the differences between one invocation and another via some small set of parameters? If so, then I'd consider writing an HtmlHelper extension to generate it. Then I would use the extension in my View to generate the code. Pass the parameters to the View via ViewData from the controller if you can't derive it from the Model or RouteValues.
<%= Html.GenerateGoogleVisAPI( ViewData["someThing"],
ViewData["otherThing"] ) %>
Another alternative would be to make it into a ViewUserControl -- to which you can pass a Model and ViewData. You'd still include this via the view.
<% Html.RenderPartial( "GoogleVisControl",
ViewData["GoogleVisModel"],
ViewData ); %>
EDIT:
My HtmlHelperExtensions usually go in a separate class library project. So my hierarchy would look something like the following. Note that I'm omitting the associated Test projects for each level for the sake of brevity, but they would be in there as well. If you have multiple applications using the same data layer, the data layer may exist in a separate solution entirely depending on whether you have one solution per app or multiple apps per solution. I add project references to the web project for the class library projects.
+-Project.Web
+-Content
+-Controllers
+-Models
+-Views
+-...
+-Shared
+-Error.aspx
+-GoogleVisControl.ascx
+-LoginUserControl.ascx
+-Site.Master
+-...
+-...
+-...
+-Project.Common
+-Project.Common.Web
+-HtmlHelperExtensions.cs
+-...
+-Project.Data
+...