MVC WebApi的两种访问方法
//UserInfoController
using ClassLibrary;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace WebApiExam.Controllers
{
public class UserInfoController : ApiController
{
// GET: api/UserInfo
public IEnumerable<UserInfo> Get()
{
List<UserInfo> list = new List<UserInfo>();
list.Add(new UserInfo() { Id = 1, Name = "zhangsan" });
list.Add(new UserInfo() { Id = 2, Name = "lisi" });
list.Add(new UserInfo() { Id = 3, Name = "wangwu" });
return list;
//return new string[] { "value1", "value2" };
}
// GET: api/UserInfo/5
public string Get(int id)
{
return "value";
}
// POST: api/UserInfo
public void Post([FromBody]string value)
{
}
// PUT: api/UserInfo/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE: api/UserInfo/5
public void Delete(int id)
{
}
}
}
//客户端访问,只能在本域中
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<meta charset="utf-8" />
<script src="Scripts/jquery-1.10.2.min.js"></script>
<script>
$(function () {
loadList();
});
function loadList() {
$.ajax({
type: 'get',
data: '{}',
url:'http://localhost:10536/api/UserInfo',
contentType: 'application/json;charset=utf-8',
dataType: 'json',
success: function (list) {
listBody = $('#listBody');
listBody.empty();
$.each(list, function (index,item) {
listBody.append('<tr><td>' + item.Id + '</td><td>' + item.Name + '</td></tr>');
})
}
});
}
</script>
</head>
<body>
<table border="1">
<tr>
<th>编号</th>
<th>姓名</th>
</tr>
<tbody id="listBody">
</tbody>
</table>
</body>
</html>
//使用HttpClient访问,可以跨域
using ClassLibrary;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Web;
using System.Web.Mvc;
namespace WebApiClient.Controllers
{
public class HomeController : Controller
{
// GET: Home
public ActionResult Index()
{
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = client.GetAsync("http://localhost:10536/api/UserInfo").Result;
//方法ReadAsAsync(),必须引用项目Packages里面的System.Net.Http.Formatting.dll才可以使用
var list = response.Content.ReadAsAsync<List<UserInfo>>().Result;
ViewData.Model = list;
return View();
}
}
}
//Index.cshtml
@model List<ClassLibrary.UserInfo>
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
<table border="1">
<tr>
<th>编号</th>
<th>名字</th>
</tr>
@foreach(ClassLibrary.UserInfo user in Model)
{
<tr>
<td>@user.Id</td>
<td>@user.Name</td>
</tr>
}
</table>
</div>
</body>
</html>
MVC WebApi的两种访问方法的更多相关文章
- js对象的 两种访问方式
来对象访问属性有两种方式.有一个对象Obj = {"Name":"Langshen","AGE":"28"} 用点访问, ...
- bind()函数的深入理解及两种兼容方法分析
在JavaScript中,bind()函数仅在IE9+.Firefox4+.Chrome.Safari5.1+可得到原生支持.本文将深入探讨bind()函数并对两种兼容方法进行分析比较.由于本文将反复 ...
- angular2系列教程(十)两种启动方法、两个路由服务、引用类型和单例模式的妙用
今天我们要讲的是ng2的路由系统. 例子
- git两种合并方法 比较merge和rebase
18:01 2015/11/18git两种合并方法 比较merge和rebase其实很简单,就是合并后每个commit提交的id记录的顺序而已注意:重要的是如果公司用了grrit,grrit不允许用m ...
- 两种Ajax方法
两种Ajax方法 Ajax是一种用于快速创建动态网页的技术,他通过在后台与服务器进行少量的数据交换,可以实现网页的异步更新,不需要像传统网页那样重新加载页面也可以做到对网页的某部分作出更新,现在这项技 ...
- mysql in 的两种使用方法
简述MySQL 的in 的两种使用方法: 他们各自是在 in keyword后跟一张表(记录集).以及在in后面加上字符串集. 先讲后面跟着一张表的. 首先阐述三张表的结构: s(sno,sname. ...
- C#中的两种debug方法
这篇文章主要介绍了C#中的两种debug方法介绍,本文讲解了代码用 #if DEBUG 包裹.利用宏定义两种方法,需要的朋友可以参考下 第一种:需要把调试方法改成debug代码用 #if DEBU ...
- Service的两种启动方法
刚才看到一个ppt,介绍service的两种启动方法以及两者之间的区别. startService 和 bindService startService被形容为我行我素,而bindService被形容 ...
- jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
在asp.net webForm开发中,用Jquery ajax调用aspx页面的方法常用的有两种:下面我来简单介绍一下. [WebMethod] public static string SayHe ...
随机推荐
- C# 软件编码规范
一.代码注释 并不是所有的代码均需要注释. 1.类头部注释 /// <summary> /// 描述类的用途 /// 作者: 张三 /// 日期: 2015/12/1 /// </s ...
- tomcat 启动项目时出现 ZipException: error in opening zip file
错误情况 项目用 maven 打好 war 包后放到 tomcat 下,启动 tomcat,出现以下错误 3-Nov-2017 12:21:44.346 严重 [localhost-startStop ...
- PHP怎么读写XML?(四种方法)
PHP怎么读写XML?(四种方法) 一.总结 1.这四种方法中,字符串的方式是最原始的方法.SimpleXML和DOM扩展是属于基于树的解析器,把整个文档存储为树的数据结构中,需要把整个文档都加载到内 ...
- 与Qt的联系方式:邮件,论坛,销售,Bug报告
If you want to learn more about upcoming things for Qt, please stay tuned for new blog posts and web ...
- 面试无忧之Zookeeper总结心得
为什么需要分布式系统 l 单机系统已经无法满足业务需要 l 高性能硬件价格昂贵 分布式系统带来哪些问题 l 集群中节点数据一致性问题 l 集群产生分区 l 负载问题 l 幂等性问题 l 可用性问题 l ...
- 任务调度平台Cuckoo-Schedule
任务调度平台Cuckoo-Schedule 1 概述 1.1 平台概述 Cuckoo-Schedule是基于Quartz-Schedule的轻量级任务调度框架,具有易学习.易 ...
- Watchdog机制概述
1. Watchdog初始 Watchdog的中文的“看门狗”,有保护的意思.最早引入Watchdog是在单片机系统中,由于单片机的工作环境容易受到外界磁场的干扰,导致程序“跑飞”,造成整个系统无法正 ...
- BZOJ 2286 消耗战 - 虚树 + 树型dp
传送门 题目大意: 每次给出k个特殊点,回答将这些特殊点与根节点断开至少需要多少代价. 题目分析: 虚树入门 + 树型dp: 刚刚学习完虚树(好文),就来这道入门题签个到. 虚树就是将树中的一些关键点 ...
- Spring Quartz定时任务如何获得ServletContext对象?
servlet中可以得到ServletContext quartz调用servlet中的方法 完美解决了
- POJ 1418 基本操作和圆 离散弧
Viva Confetti Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 761 Accepted: 319 Descr ...