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

2、添加silverlight项目

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

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5.  
  6. namespace NetMVCAPI.Models
  7. {
  8. public class Contact
  9. {
  10. public int Id { get; set; }
  11.  
  12. public string Name { get; set; }
  13.  
  14. public string Gender { get; set; }
  15. }
  16. }

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

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using System.Net.Http;
  6. using System.Web.Http;
  7. using NetMVCAPI.Models;
  8.  
  9. namespace NetMVCAPI.Controllers
  10. {
  11. public class ContactController : ApiController
  12. {
  13. Contact[] contacts = new Contact[]
  14. {
  15. new Contact(){ Id=, Name="mk", Gender="男"},
  16. new Contact(){ Id=, Name="ll", Gender="男"},
  17. new Contact(){ Id=, Name="hj", Gender="男"},
  18. new Contact(){ Id=, Name="zxm", Gender="女"},
  19. new Contact(){ Id=, Name="wmq", Gender="女"},
  20. };
  21.  
  22. /// <summary>
  23. /// /api/Contact
  24. /// </summary>
  25. /// <returns></returns>
  26. public IEnumerable<Contact> GetListAll()
  27. {
  28. return contacts;
  29. }
  30.  
  31. /// <summary>
  32. /// /api/Contact/id
  33. /// </summary>
  34. /// <param name="id"></param>
  35. /// <returns></returns>
  36. public Contact GetContactById(int id)
  37. {
  38. Contact contact = contacts.FirstOrDefault<Contact>(item => item.Id == id);
  39. if (contact == null)
  40. {
  41. throw new HttpResponseException(HttpStatusCode.NotFound);
  42. }
  43. return contact;
  44. }
  45.  
  46. /// <summary>
  47. /// 根据性别查询
  48. /// /api/Contact?Gender=女
  49. /// </summary>
  50. /// <param name="gender"></param>
  51. /// <returns></returns>
  52. public IEnumerable<Contact> GetListByGender(string gender)
  53. {
  54. return contacts.Where(item => item.Gender == gender);
  55. }
  56.  
  57. /// <summary>
  58. /// 根据姓名查询
  59. /// /api/Contact/Name=mk
  60. /// </summary>
  61. /// <param name="name"></param>
  62. /// <returns></returns>
  63. public IEnumerable<Contact> GetListByName(string name)
  64. {
  65. return contacts.Where(item => item.Name == name);
  66. }
  67. }
  68. }

5、通过silverlight访问WebApi

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using System.Windows;
  6. using System.Windows.Controls;
  7. using System.Windows.Documents;
  8. using System.Windows.Input;
  9. using System.Windows.Media;
  10. using System.Windows.Media.Animation;
  11. using System.Windows.Shapes;
  12.  
  13. namespace SilverlightApplication1
  14. {
  15. public partial class MainPage : UserControl
  16. {
  17.  
  18. public MainPage()
  19. {
  20. InitializeComponent();
  21. }
  22.  
  23. private void Button_Click(object sender, RoutedEventArgs e)
  24. {
  25. var uriStr = new Uri(Application.Current.Host.Source, TextBoxUri.Text);
  26. var wc = new WebClient();
  27. wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownloadStringAsyncCompleted);
  28. wc.DownloadStringAsync(uriStr);
  29. }
  30. void DownloadStringAsyncCompleted(object sender, DownloadStringCompletedEventArgs e)
  31. {
  32. try
  33. {
  34. TextBlock_Result.Text = e.Result;
  35. }
  36. catch (Exception ex)
  37. {
  38. TextBlock_Result.Text = ex.Message;
  39. }
  40. }
  41. }
  42. }

6、运行如下:

运行前:

运行后:

silverlight调用MVC WebApi方法的更多相关文章

  1. (转)Silverlight调用的JS方法返回对象数组的处理方法

    最近在做Silverlight应用,需要用Silverlight调用页面中Javascript方法.这 个JS方法返回一个对象数组给Silverlight.对于这个对象数组怎么在Silverlight ...

  2. MVC—WebAPI(调用、授权)

    ASP.NET MVC—WebAPI(调用.授权)   本系列目录:ASP.NET MVC4入门到精通系列目录汇总 微软有了Webservice和WCF,为什么还要有WebAPI? 用过WCF的人应该 ...

  3. SNF快速开发平台MVC-EasyUI3.9之-WebApi和MVC-controller层接收的json字符串的取值方法和调用后台服务方法

    最近项目组很多人问我,从前台页面传到后台controller控制层或者WebApi 时如何取值和运算操作. 今天就都大家一个在框架内一个取值技巧 前台JS调用代码: 1.下面是选中一行数据后右键点击时 ...

  4. .net MVC, webAPI,webForm集成steeltoe+springcloud实现调用服务中心服务的总结

    开始之前,如果没接触过Autofac的,可以移步到Autofac官方示例学习一下怎么使用:https://github.com/autofac/Examples .net 下集成steeltoe进行微 ...

  5. ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目

    ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml)   我们都知道在使用WebApi的时候Controller会自动将Action的返回值自动进行各种序列化处理(序列化为 ...

  6. ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法

    原文:ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法 群里好几个朋友都提到过这样的问题,说他们在Silverlight中调用了WebServi ...

  7. Taurus.MVC WebAPI 入门开发教程4:控制器方法及参数定义、获取及基础校验属性【Require】。

    系列目录 1.Taurus.MVC WebAPI  入门开发教程1:框架下载环境配置与运行. 2.Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World. 3.Tau ...

  8. ASP.NET Core MVC/WebAPi 模型绑定探索

    前言 相信一直关注我的园友都知道,我写的博文都没有特别枯燥理论性的东西,主要是当每开启一门新的技术之旅时,刚开始就直接去看底层实现原理,第一会感觉索然无味,第二也不明白到底为何要这样做,所以只有当你用 ...

  9. Autofac - MVC/WebApi中的应用

    Autofac前面写了那么多篇, 其实就是为了今天这一篇, Autofac在MVC和WebApi中的应用. 一.目录结构 先看一下我的目录结构吧, 搭了个非常简单的架构, IOC(web), IBLL ...

随机推荐

  1. Datawindow.net+access数据窗口制作方法

    1) 数据字典:采用SQLServer桌面程序来创建数据字典.配置正确的pbl文件生成输入列表. 在SQLServers查询器中执行select * from pbcatedt where pbe_n ...

  2. jquery ajax jsonp跨域调用实例代码

    今天研究了AJAX使用JSONP进行跨域调用的方法,发现使用GET方式和POST方式都可以进行跨域调用,这里简单分享下,方便需要的朋友 客户端代码 复制代码 代码如下: <%@ Page Lan ...

  3. 嵌入式 uboot以及kernel添加看门狗临时记录(个人记录未整理乱)

    Uboot_Kernerl_Add_Watch_Dog: U-Boot 2010.06 (Nov 01 2013 - 15:28:44) DRAM:  128 MiBCheck spi flash c ...

  4. Dapper的完整扩展(转)

    真心想说:其实...我不想用Dapper,如果OrmLite.Net支持参数化的话,也就没Dapper的什么事情了,对于OrmLite.Net只能做后续跟踪...... 这个其实是看了Dapper作者 ...

  5. selenium python (十一)alert/confirm/prompt的处理(js中的弹出框)

    webdriver中处理js所生成的alert.confirm以及prompt,采用switch_to_alert()方法定位到alert/confirm/prompt.然后使用text/accept ...

  6. 编码的UI测试项目——Visual Studio 2013

    今天实现了一次编码的UI测试项目,以下是我进行测试的过程: 1.新建测试项目 在visual studio中(我用的版本是2013 update2)点击文件->新建->项目,选择“编码的U ...

  7. DHTML 教程学习进度备忘

    书签:跳过:另外跳过的内容有待跟进 __________________ 学习资源:W3School. _________________ 跳过的内容: 1.这个学习进度和前面几个学习进度,只是学习了 ...

  8. 我来说说MVC过滤器

    APS.NET MVC中的每一个请求,都会分配给相应的控制器和对应的行为方法去处理,而在这些处理的前前后后如果想再加一些额外的逻辑处理.这时候就用到了过滤器. 在Asp.netMvc中当你有以下及类似 ...

  9. Apriori算法例子

    1 Apriori介绍 Apriori算法使用频繁项集的先验知识,使用一种称作逐层搜索的迭代方法,k项集用于探索(k+1)项集.首先,通过扫描事务(交易)记录,找出所有的频繁1项集,该集合记做L1,然 ...

  10. 转——使用Axure制作App原型应该怎样设置尺寸?

    想用Axure设计一个 APP原型 放到真实的移动设备中演示,但不知道应该使用什么尺寸?若要解释清楚像素和分辨率需要的篇幅比较长,请大家参考百度百科.这里金乌直接给大家提供一个常用的移动设备尺寸列表, ...