This repo shows how to use DotVVM together with ASP.NET MVC application in the same application.
- Make sure you have installed DotVVM for Visual Studio
-
Open the GitHub repo in Visual Studio or
git clone https://github.com/riganti/dotvvm-samples-combo-with-mvc.git
-
Open
AspNetCore/DotvvmMvcIntegration/DotvvmMvcIntegration.sln
(ASP.NET Core) orOwin/DotvvmMvcIntegration/DotvvmMvcIntegration.sln
(.NET Framework with OWIN) -
Right-click the
DotvvmMvcIntegration
project and select View > View in Browser
- How to use DotVVM together with other frameworks like ASP.NET MVC in the same app
-
Install the
DotVVM.Owin
NuGet package. -
Install the
Microsoft.Owin.Host.SystemWeb
package if you already don't have it in your project. -
Add the OWIN Startup class and call
app.UseDotVVM...
. -
Unload the project, edit the
.csproj
file and add the DotVVM Project guid (94EE71E2-EE2A-480B-8704-AF46D2E58D94
) as a first one in the<ProjectTypeGuids>
element.
This is only needed to get full editing experience in Visual Studio. If you don't have the DotVVM for Visual Studio installed, do not add this GUID otherwise you won't be able to load the project.
It should look like this:
```
<ProjectTypeGuids>{94EE71E2-EE2A-480B-8704-AF46D2E58D94};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
```
-
Make sure you have told the IIS to run all managed modules for all HTTP requests in the
web.config
:<system.webServer> <modules runAllManagedModulesForAllRequests="true" /> <validation validateIntegratedModeConfiguration="false" /> </system.webServer>
-
Create your DotvvmStartup file and register your DotVVM routes. Any request that doesn't match any DotVVM route, will be passed to the ASP.NET MVC handlers.
-
Install the
DotVVM.AspNetCore
NuGet package. -
Register the DotVVM services in the
ConfigureServices
method in the Startup.cs file:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddDotVVM<DotvvmStartup>();
...
}
- Install the DotVVM middleware in the HTTP request pipeline in the
Configure
method in the Startup.cs file:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
...
app.UseDotVVM<DotvvmStartup>(env.ContentRootPath);
...
}
- Create your DotvvmStartup file and register your DotVVM routes. Any request that doesn't match any DotVVM route, will be passed to the next middleware.
To separate DotVVM views from the MVC views, we have placed DotVVM views in a folder called DotVVM
. However, it is not necessary.
DotVVM doesn't care about where you have your views, so you can have views from both DotVVM and MVC in one folder.