博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
silverlight调用MVC WebApi方法
阅读量:4930 次
发布时间:2019-06-11

本文共 3301 字,大约阅读时间需要 11 分钟。

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="女"},        };        ///         /// /api/Contact        ///         /// 
public IEnumerable
GetListAll() { return contacts; } ///
/// /api/Contact/id /// ///
///
public Contact GetContactById(int id) { Contact contact = contacts.FirstOrDefault
(item => item.Id == id); if (contact == null) { throw new HttpResponseException(HttpStatusCode.NotFound); } return contact; } ///
/// 根据性别查询 /// /api/Contact?Gender=女 /// ///
///
public IEnumerable
GetListByGender(string gender) { return contacts.Where(item => item.Gender == gender); } ///
/// 根据姓名查询 /// /api/Contact/Name=mk /// ///
///
public IEnumerable
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、运行如下:

运行前:

运行后:

 

转载于:https://www.cnblogs.com/iammackong/p/3544422.html

你可能感兴趣的文章
问题账户需求分析
查看>>
hp 服务器通过串口重定向功能的使用
查看>>
此博客不再发表对自己私事的看法
查看>>
导致Asp.Net站点重启的10个原因
查看>>
【PMP】Head First PMP 学习笔记 第一章 引言
查看>>
抓住云机遇编排工作 搞定复杂IT工作流
查看>>
MYSQL的longtext字段能放多少数据?
查看>>
MTK 平台上如何给 camera 添加一种 preview size
查看>>
云计算最大难处
查看>>
mysql定时备份自动上传
查看>>
17岁时少年决定把海洋洗干净,现在21岁的他做到了
查看>>
《写给大忙人看的java se 8》笔记
查看>>
倒计时:计算时间差
查看>>
Linux/windows P2V VMWare ESXi
查看>>
Windows XP倒计时到底意味着什么?
查看>>
运维工程师在干什么学些什么?【致菜鸟】
查看>>
Linux中iptables详解
查看>>
java中回调函数以及关于包装类的Demo
查看>>
maven异常:missing artifact jdk.tools:jar:1.6
查看>>
终端安全求生指南(五)-——日志管理
查看>>