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=1, Name="mk", Gender="男"},
new Contact(){ Id=2, Name="ll", Gender="男"},
new Contact(){ Id=3, Name="hj", Gender="男"},
new Contact(){ Id=4, Name="zxm", Gender="女"},
new Contact(){ Id=5, 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、运行如下:
运行前:
运行后:
分享到:
相关推荐
Silverlight 调用oxc控件,通过web页面调用
由于自己在学习silverlight中调用wcf服务遇到了一些麻烦,走了弯路,现在整理一个非常简要的demo供大家使用!相关说明:http://blog.csdn.net/liushengpiaoxu/archive/2009/02/28/3945454.aspx
调用Web服务是一种常见的功能,在Silverlight2中也是可以调用别的网站的Web服务的。由于跨域访问存在安全漏洞,所以,默认情况下,Silverlight2不允许跨域进行服务的调用。要实现跨域调用Web服务,需要在被调用的Web...
Silverlight调用WebBrowser中HTML的JavaScript方法.
1.文件夹SilverlightFrmWcf : winform程序托管wcf服务Silverlight调用wcf 跨域解决方案 (1)解决方案frmWcfService:winform程序托管wcf服务 (2)Silverlight项目调用wcf解决方案 2.文件夹SilverlightWCFDemo: iis...
SilverLight 2.0 调用 WebService 视频教程 SilverLight 2.0 调用 WebService 视频教程 SilverLight 2.0 调用 WebService 视频教程 SilverLight 2.0 调用 WebService 视频教程
silverlight调用摄像头,可用于视频监控和截图.经测试可用.
Silverlight调用WCF服务引用示例
基于Silverlight实现调用webservice上传多个文件的源码例子
请大家帮助解决!Silverlight调用控制台wcf跨域问题
此程序是实现一个不同机器,使用silverlight调用wcf服务的练习
此demo是对silverlight调用wcf服务的练习,实现了客户端与服务端进行字符串传递,使用http协议
VS2012 程序, 共包括3个Project ,一个Silverlight作为客户端 , 一个网站 ,一个控制台程序作为服务器段, 代码有注释,讲述了Silverlight调用Socket的基本原理。
Silverlight调用WCF,Silverlight调用一般性处理程序,企业开发移动应用常用的技术点。
用silverlight调用默认打印机打印。通用的调用类。
Silverlight树形菜单[带图标] silverlight 退出系统(关闭当前网页),通过调用JS
ArcGIS API for Silverlight 3.0
arcgis api for silverlight 3.0版本,好用
Silverlight 4 API 比较全面. Silverlight开发必备工具.