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 ...
随机推荐
- keepalived.conf 配置文件小结
vrrp_script vs_mysql_82 { script "/etc/keepalived/checkMySQL.py -h 192.168.11.82 -P 3306&qu ...
- 手把手教你完成App支付JAVA后台-支付宝支付JAVA
接着上一篇博客,我们暂时完成了手机端的部分支付代码,接下来,我们继续写后台的代码. 后台基本需要到以下几个参数,我都将他们写在了properties文件中: 支付宝参数 AliPay.payURL = ...
- Spring mvc redirect跳转路径问题
SpringMVC重定向视图RedirectView小分析 前言 SpringMVC是目前主流的Web MVC框架之一. 本文所讲的部分内容跟SpringMVC的视图机制有关,SpringMVC的视图 ...
- J2EE学习篇之--JQuery技术具体解释
前面我们解说了的J2EE的技术都是服务端的技术,以下我们来看一下前端的一些开发技术,这一篇我们来看一下jQuery技术 简单介绍: jQuery由美国人John Resig创建,至今已吸引了来自世界各 ...
- Python 库的使用 —— dis
dis:Disassembler of Python byte code into mnemonics. Java.Python.Ruby 1.9 这些语言均使用了栈机器型的 VM.因为是基于栈的实现 ...
- TensorFlow 学习(十二)—— 高级函数
tf.map_fn(fn, elems):接受一个函数对象,然后用该函数对象对集合(elems)中的每一个元素分别处理, def preprocessing_image(image, training ...
- erlang lists
http://blog.csdn.net/dp0304/article/details/7590233 一,带函数Pred1, all(Pred, List) -> boolean()如果Lis ...
- Read-Copy Update Implementation For Non-Cache-Coherent Systems
A technique for implementing read-copy update in a shared-memory computing system having two or more ...
- 【25.23%】【codeforces 731C】Socks
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- 项目中碰到的ExceptionInInitializerError异常
背景 之前在集成第三方即时通信系统-融云的时候,我直接clone它的服务端源码,然后导入我的项目,我在测试它连接融云服务器案例时,发现一直不成功,始终报一个 ExceptionInInitialize ...