silverlight调用MVC WebApi方法
2024-10-19 02:24:13
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、运行如下:
运行前:
运行后:
最新文章
- Spark 学习总结
- iOS多线程-多线程实现之GCD
- GitHub-版本控制
- django中文配置的问题
- (转)assert 断言式编程
- 1219 spring3 项目总结
- nginx平台初探(100%)
- DB2导入导出数据库数据
- CodeForces - 241E Flights 题解
- firemonkey中stringgrid属性大全
- Linux 静态库和动态库 使用说明
- bzoj1789 AHOI 维护数列(线段树)
- JDK源码阅读(二) AbstractList
- debian linux 中如何查看软件包是否已经安装和如何安装、卸载软件
- ecshop代码详解之init.php
- 【转】android权限列表
- 微信公众号开发之网页中及时获取当前用户Openid及注意事项
- http请求 302解决方法
- 跨域资源共享CORS详解
- 在JavaScript中使用json.js:Ajax项目之POST请求(异步)
热门文章
- SQL0668N 由于表 ";db2inst1.test"; 上的原因代码 ";3";,所以不允许操作(解因为LOAD引起的LOAD暂挂状态锁)
- Android数据库升级,数据不丢失解决方案
- XSS 前端防火墙(4):天衣无缝的防护
- JVM内存结构之三--持久代
- PHP开发规范
- C++中 类的构造函数理解(一)
- C#/.net给textbox添加回车事件
- web.xml 配置介绍
- 数据结构(12) -- 图的邻接矩阵的DFS和BFS
- 服务器进程为何通常fork()两次