// Controllers.cs
namespace Microshaoft.WebApi.Controllers
{
using Microshaoft.WebApi.Models;
using System;
using System.Collections.Generic;
using System.Web.Http;
using System.Net.Http;
using System.Net;
using System.Linq;
public class PersonsController : ApiController
{
List<Person> _persons = new Person[]
{
new Person("张栢芝", 71, 178, 49)
, new Person("章子怡", 23, 177, 33)
, new Person("周 迅", 12, 180, 80)
, new Person("徐静蕾", 12, 150, 70)
, new Person("赵 薇", 23, 166, 60)
, new Person("宋丹丹", 50, 183, 50)
, new Person("翠花儿", 23, 177, 34)
, new Person("赵丽蓉", 50, 184, 40)
, new Person("郭晶晶", 50, 184, 41)
}.ToList();
public IEnumerable<Person> GetXXX()
{
return _persons;
}
public IEnumerable<Person> getXXXX(int i)
{
return _persons;
}
// GET api/values/5
public string Get(int id)
{
return "value";
}
// POST api/values
public void Post([FromBody]string value)
{
}
public HttpResponseMessage Post(Person item)
{
_persons.Add(item);
var response = Request.CreateResponse<Person>(HttpStatusCode.Created, item);
string uri = Url.Link("DefaultApi", new { Name = item.Name });
response.Headers.Location = new Uri(uri);
return response;
}
// PUT api/values/5
public void Put(int id, [FromBody]string value)
{
}
public void Put(int id, Person item)
{
_persons[id] = item;
}
// DELETE api/values/5
public void Delete(int id)
{
_persons.RemoveAt(id);
}
}
}
// Models.cs
namespace Microshaoft.WebApi.Models
{
using System;
public class Person : IComparable<Person>
{
public string Name
{
get;
set;
}
public int Age
{
get;
set;
}
public int Height
{
get;
set;
}
public int Weight
{
get;
set;
}
public Person(string name, int age, int height, int weight)
{
Name = name;
Age = age;
Height = height;
Weight = weight;
}
public Person()
{
}
public override string ToString()
{
return
string.Format
(
"姓名:{0}, 年龄:{1:N}, 体重:{2:N}, 身高:{3:N}"
, Name
, Age
, Height
, Weight
);
}
public int CompareTo(Person other)
{
int r = 0;
r = Age - other.Age;
if (r == 0)
{
r = Height - other.Height;
if (r == 0)
{
r = Weight - other.Weight;
}
}
return r;
}
}
}
// BundleConfig.cs
namespace Microshaoft.WebMvc
{
using System.Web.Optimization;
public class BundleConfig
{
// For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add
(
new ScriptBundle("~/bundles/jquery")
.Include("~/Scripts/jquery-{version}.js")
);
bundles.Add
(
new ScriptBundle("~/bundles/jqueryui")
.Include("~/Scripts/jquery-ui-{version}.js")
);
bundles.Add
(
new ScriptBundle("~/bundles/jqueryval")
.Include
(
"~/Scripts/jquery.unobtrusive*"
, "~/Scripts/jquery.validate*"
)
);
// Use the development version of Modernizr to develop with and learn from. Then, when you're
// ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
bundles.Add
(
new ScriptBundle("~/bundles/modernizr")
.Include("~/Scripts/modernizr-*")
);
bundles.Add
(
new StyleBundle("~/Content/css")
.Include("~/Content/site.css")
);
bundles.Add
(
new StyleBundle("~/Content/themes/base/css")
.Include
(
"~/Content/themes/base/jquery.ui.core.css",
"~/Content/themes/base/jquery.ui.resizable.css",
"~/Content/themes/base/jquery.ui.selectable.css",
"~/Content/themes/base/jquery.ui.accordion.css",
"~/Content/themes/base/jquery.ui.autocomplete.css",
"~/Content/themes/base/jquery.ui.button.css",
"~/Content/themes/base/jquery.ui.dialog.css",
"~/Content/themes/base/jquery.ui.slider.css",
"~/Content/themes/base/jquery.ui.tabs.css",
"~/Content/themes/base/jquery.ui.datepicker.css",
"~/Content/themes/base/jquery.ui.progressbar.css",
"~/Content/themes/base/jquery.ui.theme.css"
)
);
}
}
}
// FilterConfig.cs
namespace Microshaoft.WebMvc
{
using System.Web.Mvc;
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
}
}
// RouteConfig.cs
namespace Microshaoft.WebMvc
{
using System.Web.Mvc;
using System.Web.Routing;
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute
(
name :
"Default",
url :
"{controller}/{action}/{id}",
defaults :
new
{
controller = "Home",
action = "Index",
id = UrlParameter.Optional
}
);
}
}
}
// WebApiConfig.cs
namespace Microshaoft.WebApi
{
using System.Web.Http;
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute
(
name :
"DefaultApi",
routeTemplate :
"services/restful/api/{controller}/{id}",
defaults :
new
{
id = RouteParameter.Optional
}
);
// Uncomment the following line of code to enable query support for actions with an IQueryable or IQueryable<T> return type.
// To avoid processing unexpected or malicious queries, use the validation settings on QueryableAttribute to validate incoming queries.
// For more information, visit http://go.microsoft.com/fwlink/?LinkId=279712.
//config.EnableQuerySupport();
// To disable tracing in your application, please comment out or remove the following line of code
// For more information, refer to: http://www.asp.net/web-api
config.EnableSystemDiagnosticsTracing();
}
}
}
// Global.asax.cs
// Global.asax
/*
<%@ Application Language="C#" Inherits="Microshaoft.Web.Global" %>
*/
namespace Microshaoft.Web
{
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
using Microshaoft.WebMvc;
using Microshaoft.WebApi;
// Note: For instructions on enabling IIS6 or IIS7 classic mode,
// visit http://go.microsoft.com/?LinkId=9394801
public class Global : HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
// comment for Web API
//BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
}

ASP.NET MVC 4 WebAPI Simple Sample的更多相关文章

  1. 给Asp.Net MVC及WebApi添加路由优先级

    一.为什么需要路由优先级 大家都知道我们在Asp.Net MVC项目或WebApi项目中注册路由是没有优先级的,当项目比较大.或有多个区域.或多个Web项目.或采用插件式框架开发时,我们的路由注册很可 ...

  2. AJAX跨域调用ASP.NET MVC或者WebAPI服务

    关于AJAX跨域调用ASP.NET MVC或者WebAPI服务的问题及解决方案 作者:陈希章 时间:2014-7-3 问题描述 当跨域(cross domain)调用ASP.NET MVC或者ASP. ...

  3. 【转载】为ASP.NET MVC及WebApi添加路由优先级

    路由方面的: 转载地址:http://www.jb51.net/article/73417.htm Author:lijiao 这是一个对Asp.Net Mvc的一个很小的功能拓展,小项目可能不太需要 ...

  4. AJAX跨域调用ASP.NET MVC或者WebAPI服务的解决方案

    问题描述 当跨域(cross domain)调用ASP.NET MVC或者ASP.NET Web API编写的服务时,会发生无法访问的情况. 重现方式 使用模板创建一个最简单的ASP.NET Web ...

  5. ASP.NET MVC对WebAPI接口操作(添加,更新和删除)

    昨天<怎样操作WebAPI接口(显示数据)>http://www.cnblogs.com/insus/p/5670401.html 既有使用jQuery,也有使作HttpClient来从数 ...

  6. 关于AJAX跨域调用ASP.NET MVC或者WebAPI服务的问题及解决方案

      作者:陈希章 时间:2014-7-3 问题描述 当跨域(cross domain)调用ASP.NET MVC或者ASP.NET Web API编写的服务时,会发生无法访问的情况. 重现方式 使用模 ...

  7. ASP.NET MVC 4 WebAPI. Support Areas in HttpControllerSelector

    This article was written for ASP.NET MVC 4 RC (Release Candidate). If you are still using Beta versi ...

  8. Asp.Net MVC part6 WebAPI

    两种web服务SOAP风格:基于方法,产品是WebServiceREST风格:基于资源,产品是WebAPI可以返回json.xml类型的数据对于数据的增.删.改.查,提供相对的资源操作,按照请求的类型 ...

  9. 如何解决Asp.Net MVC和WebAPI的Controller名称不能相同的问题

    1.问题描述 假如有一个文章的业务(Article),我们在 Controllers文件夹中创建MVC Controller和Api Controller,各个Controller中都有相同的获取文章 ...

随机推荐

  1. JavaScript——this关键字

    请看下面的代码,最后alert出来的是什么呢? 1 var name = "Bob"; 2 var nameObj ={ 3 name : "Tom", 4 s ...

  2. 从其它系统登录到SharePoint 2010系统的单点登录

    以前做的只是使用SharePoint的单一登录,用SharePoint去登录其他的系统,现在要反过来,用Form认证的系统来登录SharePoint. 我们都知道,SharePoint使用的是域认证系 ...

  3. 【leetcode】Reverse Nodes in k-Group

    Reverse Nodes in k-Group Given a linked list, reverse the nodes of a linked list k at a time and ret ...

  4. C#读写SQL Server数据库图片

    效果图: 下载链接: http://download.csdn.net/detail/u010312811/9492402 1.创建一个Winform窗体,窗体分为“数据上传”和“数据读取”两部分: ...

  5. php如何妩媚地生成执行的sql语句

    会不会碰到这样一种情况呢?每次获取数据将数据和历史版本都有一定的差别,然而用ThinkPHP的addAll()函数,却会将已有的数据删掉再重新写入.这明显不是我们想要的.但自己写sql每次几十个字段也 ...

  6. poj1155

    题意:给定一个树形图,节点数量3000.叶子节点是用户,每个用户如果能看上电视会交一定的电视费.看上电视的条件是从根到该用户的路径全部被修好,修每条边有一个费用.在不亏损(用户交钱总额>=修路总 ...

  7. iOS 利用不等的constraint实现布局间隔调整

    以前也写过一篇文章,说的也是如何利用constraint调整布局间隔,今天说另一种方法,实现简单,但有一定局限. 先看图 这里只截取了一部分,这个页面在4寸是可以显示的,但是如果不把控件间的间距缩小, ...

  8. ffmpeg-20160731-bin.7z

    ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 S 下一帧 [ -2秒 ] +2秒 ; -1秒 ' +1秒 下一个帧 -> -5秒 f ...

  9. Java for LeetCode 208 Implement Trie (Prefix Tree)

    Implement a trie with insert, search, and startsWith methods. Note: You may assume that all inputs a ...

  10. Python 开发轻量级爬虫02

    Python 开发轻量级爬虫 (imooc总结02--爬虫简介) 爬虫简介 首先爬虫是什么?它是一段自动抓取互联网信息的程序. 什么意思呢? 互联网由各种各样的的网页组成,每一个网页都有对应的url, ...