1、创建ASP.NET MVC4 Web应用程序,选择WebAPI模板

2、添加silverlight项目

3、新建一个数据模型类,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; namespace NetMVCAPI.Models
{
public class Contact
{
public int Id { get; set; } public string Name { get; set; } public string Gender { get; set; }
}
}

4、新建一个控制器,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using NetMVCAPI.Models; namespace NetMVCAPI.Controllers
{
public class ContactController : ApiController
{
Contact[] contacts = new Contact[]
{
new Contact(){ Id=, Name="mk", Gender="男"},
new Contact(){ Id=, Name="ll", Gender="男"},
new Contact(){ Id=, Name="hj", Gender="男"},
new Contact(){ Id=, Name="zxm", Gender="女"},
new Contact(){ Id=, Name="wmq", Gender="女"},
}; /// <summary>
/// /api/Contact
/// </summary>
/// <returns></returns>
public IEnumerable<Contact> GetListAll()
{
return contacts;
} /// <summary>
/// /api/Contact/id
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public Contact GetContactById(int id)
{
Contact contact = contacts.FirstOrDefault<Contact>(item => item.Id == id);
if (contact == null)
{
throw new HttpResponseException(HttpStatusCode.NotFound);
}
return contact;
} /// <summary>
/// 根据性别查询
/// /api/Contact?Gender=女
/// </summary>
/// <param name="gender"></param>
/// <returns></returns>
public IEnumerable<Contact> GetListByGender(string gender)
{
return contacts.Where(item => item.Gender == gender);
} /// <summary>
/// 根据姓名查询
/// /api/Contact/Name=mk
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public IEnumerable<Contact> GetListByName(string name)
{
return contacts.Where(item => item.Name == name);
}
}
}

5、通过silverlight访问WebApi

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes; namespace SilverlightApplication1
{
public partial class MainPage : UserControl
{ public MainPage()
{
InitializeComponent();
} private void Button_Click(object sender, RoutedEventArgs e)
{
var uriStr = new Uri(Application.Current.Host.Source, TextBoxUri.Text);
var wc = new WebClient();
wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownloadStringAsyncCompleted);
wc.DownloadStringAsync(uriStr);
}
void DownloadStringAsyncCompleted(object sender, DownloadStringCompletedEventArgs e)
{
try
{
TextBlock_Result.Text = e.Result;
}
catch (Exception ex)
{
TextBlock_Result.Text = ex.Message;
}
}
}
}

6、运行如下:

运行前:

运行后:

最新文章

  1. Spark 学习总结
  2. iOS多线程-多线程实现之GCD
  3. GitHub-版本控制
  4. django中文配置的问题
  5. (转)assert 断言式编程
  6. 1219 spring3 项目总结
  7. nginx平台初探(100%)
  8. DB2导入导出数据库数据
  9. CodeForces - 241E Flights 题解
  10. firemonkey中stringgrid属性大全
  11. Linux 静态库和动态库 使用说明
  12. bzoj1789 AHOI 维护数列(线段树)
  13. JDK源码阅读(二) AbstractList
  14. debian linux 中如何查看软件包是否已经安装和如何安装、卸载软件
  15. ecshop代码详解之init.php
  16. 【转】android权限列表
  17. 微信公众号开发之网页中及时获取当前用户Openid及注意事项
  18. http请求 302解决方法
  19. 跨域资源共享CORS详解
  20. 在JavaScript中使用json.js:Ajax项目之POST请求(异步)

热门文章

  1. SQL0668N 由于表 &quot;db2inst1.test&quot; 上的原因代码 &quot;3&quot;,所以不允许操作(解因为LOAD引起的LOAD暂挂状态锁)
  2. Android数据库升级,数据不丢失解决方案
  3. XSS 前端防火墙(4):天衣无缝的防护
  4. JVM内存结构之三--持久代
  5. PHP开发规范
  6. C++中 类的构造函数理解(一)
  7. C#/.net给textbox添加回车事件
  8. web.xml 配置介绍
  9. 数据结构(12) -- 图的邻接矩阵的DFS和BFS
  10. 服务器进程为何通常fork()两次