← All posts

Boilerplate: Vue.js + ASP.NET MVC 5

Vue.js and ASP.NET MVC 5 boilerplate

If you need to start as soon as possible with a project using Vue.js 2.0 and ASP.NET MVC 5, here I bring you a light Boilerplate/Template with the minimum setup 👍:

https://github.com/mejiamanuel57/Boilerplate-VueJS2-ASPNETMVC5

Let’s make this run:

  1. First, clone the repository
  2. cd VueJS2-MVC5
  3. npm install
  4. npm run dev …And the Vue.js is running with hot reloading on port 8080
Vue.js dev server running on port 8080

Now let’s go to the server-side:

  1. npm run build to build the web project “for production use”
  2. Open the solution in Visual Studio
  3. Make sure to run the web project on http://localhost:54490
ASP.NET MVC 5 project in Visual Studio
  1. Press F5 and another window will open showing the built project on port 54490

Test the connexion between Vue.js and ASP.NET MVC:

  1. Go to the windows running the Vue.js project on http://localhost:8080/
  2. Click on the button “Go and test the backend”
  3. If the result says: “You have reached the backend”, everything is working

That’s all 🚀

If you want to know how this project is working, keep reading, there are certain things to take into consideration:

config/index.js

Here we specified the Vue.js build path. Note the Index.cshtml is on the same route of the ASP.NET MVC default startup project.

Vue.js build output path in config/index.js

App_Start/RouteConfig.cs

Rember, we will have the client-side routes handled by vuejs/vue-router and the server-side routes handled by ASP.NET MVC.
On RouteConfig.cs set the constraints to identify the server-side routes on our case, every URL which starts with “api”:

Server-side API routes in RouteConfig.cs

Web.config

Since the server-side will be receiving http requests from different ports in the development environment; Vue.js on 8080 and ASP.NET 54490, we need to enable cross-origin HTTP request. *On our example, it’s enabled for any domain, be aware of the security gap*.

CORS configuration in Web.config

If you have any question leave a comment or send me an email. I will make another boilerplate/template for Vue.js + ASP.NET Core, stay tuned.