创建一个空的ASP.NET WebAPI
工程,在Models
文件夹下创建一个实体类:User
,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebApi.Models
{
public class User
{
///
/// 编号
///
public int Id {
get; set; }
///
/// 用户性
///
public string UserName {
get; set; }
///
/// 密码
///
public string Password {
get; set; }
}
}
方法一就是最常见利用url
进行传值,代码如下:
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>访问ASP.NET WebAPItitle>
<script src="js/jquery-3.4.1.min.js">script>
head>
<body>
<button onclick="getUserInfo()">确定button>
<script>
function getUserInfo() {
$.ajax({
type: 'get',
url: 'https://localhost:44399/api/User/GetUserInfo?id=1&userName=张三&password=123456',
success: function (data) {
window.alert(data);
}
})
}
script>
body>
html>
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WebApi.Models;
namespace WebApi.Controllers
{
public class UserController : ApiController
{
[HttpGet]
public string GetUserInfo(int id, string userName, string password)
{
return string.Format("编号:{0},用户名:{1},密码:{2}", id, userName, password);
}
}
}
方法二其实和方法一类似,只不过将需要传递的参数装进了ajax
的data
属性,因此相较于方法一看起来更加清晰,代码如下:
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>访问ASP.NET WebAPItitle>
<script src="js/jquery-3.4.1.min.js">script>
head>
<body>
<button onclick="getUserInfo()">确定button>
<script>
function getUserInfo() {
$.ajax({
type: 'get',
url: 'https://localhost:44399/api/User/GetUserInfo',
data: {
id: 1,
userName: '张三',
password: '123456'
},
success: function (data) {
window.alert(data);
}
})
}
script>
body>
html>
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WebApi.Models;
namespace WebApi.Controllers
{
public class UserController : ApiController
{
[HttpGet]
public string GetUserInfo(int id, string userName, string password)
{
return string.Format("编号:{0},用户名:{1},密码:{2}", id, userName, password);
}
}
}
如果想要把传递的参数映射到实体类,只需要加上[FromUri]
即可,代码如下:
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>访问ASP.NET WebAPItitle>
<script src="js/jquery-3.4.1.min.js">script>
head>
<body>
<button onclick="getUserInfo()">确定button>
<script>
function getUserInfo() {
$.ajax({
type: 'get',
url: 'https://localhost:44399/api/User/GetUserInfo',
data: {
id: 1,
userName: '张三',
password: '123456'
},
success: function (data) {
window.alert(data);
}
})
}
script>
body>
html>
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WebApi.Models;
namespace WebApi.Controllers
{
public class UserController : ApiController
{
[HttpGet]
public string GetuserInfo([FromUri] User user)
{
return string.Format("编号:{0},用户名:{1},密码:{2}", user.Id, user.UserName, user.Password);
}
}
}
利用序列化和反序列化Json
字符串也可以进行参数传递,代码如下:
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>访问ASP.NET WebAPItitle>
<script src="js/jquery-3.4.1.min.js">script>
head>
<body>
<button onclick="getUserInfo()">确定button>
<script>
function getUserInfo() {
var user = {
id: 1,
userName: '张三',
password: '123456'
};
$.ajax({
type: 'get',
url: 'https://localhost:44399/api/User/GetUserInfo',
data: {
json: JSON.stringify(user)
},
success: function (data) {
window.alert(data);
}
})
}
script>
body>
html>
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WebApi.Models;
namespace WebApi.Controllers
{
public class UserController : ApiController
{
[HttpGet]
public string GetUserInfo(string json)
{
User user = JsonConvert.DeserializeObject<User>(json);
return string.Format("编号:{0},用户名:{1},密码:{2}", user.Id, user.UserName, user.Password);
}
}
}