I've created more projects using ReportViewer 2005 and 2008 in local processing mode than I can count on my hands. All Visual Studio 2005 or 2008 ASP.NET web forms projects. I always used some flavor of Object data source for the reports.

Tonight, I attempted to add the same functionality to a Visual Studio 2010 MVC 2 project and am failing miserably. First, the Add New Item > Reporting > Report is now a 2008 RDLC and not a 2005 RDLC report. Secondly, when trying to add a DataSet, my usual method of create a data proxy class with static methods that return IEnumerables(Of Stuff) will not show up as sources in the DataSources drop down

Empty Data Source

Thirdly, my only option is to add a Database connection. There is no "Object Data Source" to pick from:

Database connections only

I'm stumped. Like I kind of alluded to, I have no problems whatsoever actually rendering a report using the ReportViewer control. What I can't do is figure out how set up a Data Source in these new-fangled 2008 reports with Visual Studio 2010 so that I can pump a list of domain objects into the ReportViewer and display the report.

UPDATE

With some more research, I've found that MVC projects do not allow object data sources to be used within them. One solution for my issue is to create a separate project in the solution -- a web application, a service, or even just a class library, to add the report to and design it accordingly.

I'm still looking for alternatives here.

Here are a couple solutions. Number two is much better as it doesn't require needlessly duplicating your assemblies.

Solution 1 <sup>(okay)</sup>

As added to the question itself and described in the post Visual Studio 2010 Report Viewer - Object Datasource, just create a separate library for the project and add the rdlc file there. This appears to be a bug with the MVC Web Application project type itself so any other project type (like a Class Library) should work. The data source configuration wizard should now look like this:

data source configuration wizard

Solution 2 <sup>(better)</sup>

As figured out in Can't see or add Website Data Sources in RDLC report in ASP.NET MVC, you can just add an .aspx page anywhere to the MVC project in order to trick Visual Studio into pulling in the right design time libraries.

Just do the following:

  • Close all windows

  • Clean & Rebuild Solution

  • Add WebForm1.aspx to the Project

  • Open up the RDLC file and choose a DataSource from the dropdown:

    DataSource Dropdown