Introduction
In this article, we will learn how to send a post request from VueJS to Web API.
Prerequisites
- Basic knowledge of VueJS and Web API
- Visual Studio
- Visual Studio Code
- SQL Server Management Studio
- Node.js Installed
Create a database and table
CREATE TABLE [dbo].[EmployeeInfo](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NULL,
[City] [nvarchar](50) NULL,
[Age] [nvarchar](50) NULL,
[Tech] [nvarchar](50) NULL,
CONSTRAINT [PK_EmployeeInfo] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
Create a Web API Project
Open Visual Studio and create a new project.
![HTTP POST Request VUE+WEB API]()
Now select the project and click on the Next button.
![HTTP POST Request VUE+WEB API]()
Now select the project name and project location and click on the Create button.
![HTTP POST Request VUE+WEB API]()
Choose the template as Web API.
![HTTP POST Request VUE+WEB API]()
Right-click the Models folder from Solution Explorer and go to Add >> New Item >> data.
![HTTP POST Request VUE+WEB API]()
Click on the "ADO.NET Entity Data Model" option and click "Add".
![HTTP POST Request VUE+WEB API]()
Select EF Designer from the database and click the "Next" button.
![HTTP POST Request VUE+WEB API]()
Add the connection properties, select the database name on the next page, and click OK.
![HTTP POST Request VUE+WEB API]()
Check the "Table" checkbox. The internal options will be selected by default. Now, click the "Finish" button.
![HTTP POST Request VUE+WEB API]()
Right-click on the Controllers folder and add a new controller. Name it "Postdata controller" and add the following namespace in the Postdata controller.
using PostDataDemo.Models;
Now, add a method to insert data into the database.
public object Addrecord(Records Record) {
EmployeeInfo ct = new EmployeeInfo();
ct.Name = Record.Name;
ct.City = Record.City;
ct.Age = Record.Age;
ct.Tech = Record.Tech;
DB.EmployeeInfoes.Add(ct);
DB.SaveChanges();
return new Response {
Status = "Success", Message = "Record SuccessFully Saved."
};
}
Postdata controller
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using PostDataDemo.Models;
namespace PostDataDemo.fonts
{
public class PostdataController : ApiController
{
EmployeeEntities DB = new EmployeeEntities();
[HttpPost]
public object Addrecord(Records Record)
{
EmployeeInfo ct = new EmployeeInfo();
ct.Name = Record.Name;
ct.City = Record.City;
ct.Age = Record.Age;
ct.Tech = Record.Tech;
DB.EmployeeInfoes.Add(ct);
DB.SaveChanges();
return new Response
{ Status = "Success", Message = "Record SuccessFully Saved." };
}
}
}
Now, let's enable CORS. Go to Tools, open NuGet Package Manager, search for CORS and install the "Microsoft.Asp.Net.WebApi.Cors" package. Open Webapiconfig.cs
and add the following lines:
EnableCorsAttribute cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors)
Create VueJS Project
Now create a new VueJS project using the following command.
vue create pacs
Now open this project in Vs code and install bootstrap.
npm install bootstrap-vue bootstrap --save
Now open the main.js file and import bootstrap reference.
import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue/dist/bootstrap-vue.css'
Now install Axios by using the following command.
npm i axios
Now right click on the components folder and add a new component named 'Postdata.vue'.No open Postdata.vue component and add the following code.
<template>
<div>
<div class="container" style="margin-top:10px;margin-bottom: 24px;">
<div class="col-sm-12 btn btn-success">
HTTP POST Request VUE+WEB API
</div>
</div>
<div class="container">
<form @submit.prevent="PostData11">
<div class="form-group " style=" margin-bottom: 10px;">
<input type="text" class="form-control" id="Name" v-model="Employee.Name" placeholder="Enter Name" >
</div>
<div class="form-group" style=" margin-bottom: 10px;">
<input type="text" class="form-control" id="Age" v-model="Employee.Age" placeholder="Enter Age" >
</div>
<div class="form-group" style=" margin-bottom: 10px;">
<input type="text" class="form-control" id="City" v-model="Employee.City" placeholder="Enter City" >
</div>
<div class="form-group" style=" margin-bottom: 10px;">
<input type="text" class="form-control" id="Tech" v-model="Employee.Tech" placeholder="Enter Tech" >
</div>
<button type="submit" class="btn btn-info">Submit</button>
</form>
</div>
</div>
</template>
<script>
import axios from 'axios';
export default {
name:"Postdata",
data() {
return {
employees: [],
Employee:{
Name:"",
City:"",
Age:"",
Tech:""
}
};
},
methods: {
PostData11(){
axios.post('https://localhost:44349/api/Postdata/Addrecord',this.Employee).then(res=>{
console.log(res);
})
}
}
}
</script>
<style lang="scss" scoped>
</style>
Now open App.vue component and import the Postdata component. add the following code in App.vue component.
<template>
<div id="app">
<Postdata/>
</div>
</template>
<script>
import Postdata from './components/Postdata.vue'
export default {
name: 'App',
components: {
Postdata
}
}
</script>
<style>
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>
Now run the application by using 'npm run serve' command and enter some data and click on Submit button.
![HTTP POST Request VUE+WEB API]()
Summary
In this article, we learned how to send a post request from Vue to Web API.