博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从angularjs传递参数至Web API
阅读量:6976 次
发布时间:2019-06-27

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

昨天分享的博文《》,只是从Entity获取数据,没有进行参数POST。

今天分享一个例子,是传递参数至Web API来获取数据的。而且数据是存储在SQL中。数表结构是昨晚帮助网友解解决问题列举的:

CREATE TABLE [dbo].[TA](    [Aid] NVARCHAR(20),    [Avalue] NVARCHAR(30))GOINSERT INTO [dbo].[TA] VALUES('A1','A1value')GOCREATE TABLE [dbo].[TC](    [Cid] NVARCHAR(20),    [Cvalue] NVARCHAR(30))GOINSERT INTO [dbo].[TC] VALUES('C1','C1value'),('C2','C2value'),('C3','C3value')GOCREATE TABLE [dbo].[TB](    [Bid] NVARCHAR(20),    [Aid] NVARCHAR(20),    [Cid] NVARCHAR(20)  )GOINSERT INTO [dbo].[TB] VALUES ('B1','A1','C1'),('B2','A1','C2'),('B3','A1','C3')GO
Source Code

还缺少一个存储过程:

 

CREATE PROCEDURE [dbo].[usp_Cq_SelectByTaKey](    @Cid NVARCHAR(20))ASSELECT a.[Aid],[Avalue],c.[Cid],[Cvalue] FROM [dbo].[TB] AS bRIGHT JOIN [dbo].[TC] AS c ON (b.[Cid] = c.[Cid])RIGHT JOIN [dbo].[TA] AS a ON (b.[Aid] = a.[Aid])WHERE c.[Cid] = @CidGO
Source Code

数据库方面准备完毕,接下来是创建model:

using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace Insus.NET.Models{    public class Cq    {        private string _Aid;        public string Aid        {            get { return _Aid; }            set { _Aid = value; }        }        private string _Avalue;        public string Avalue        {            get { return _Avalue; }            set { _Avalue = value; }        }        private string _Cid;        public string Cid        {            get { return _Cid; }            set { _Cid = value; }        }        private string _Cvalue;        public string Cvalue        {            get { return _Cvalue; }            set { _Cvalue = value; }        }    }}
Source Code

模型与你的存储过程所SELECT的字段基本上匹配即可。
现在我们要写一个实体,是从程序中获取SQL的数据方法:

public IEnumerable
QueryResult(Cq cq) { sp.ConnectionString = DB.ConnectionString; sp.Parameters = new List
() { new Parameter("@Cid", SqlDbType.NVarChar,-1,cq.Cid) }; sp.ProcedureName = "usp_Cq_SelectByTaKey"; DataTable dt = sp.ExecuteDataSet().Tables[0]; return dt.ToList
(); }
Source Code

下面是本篇的重点,创建Web API:

 

using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Net.Http;using System.Web.Http;using Insus.NET.Models;using Insus.NET.Entities;namespace Insus.NET.Apis{    public class CqApiController : ApiController    {        [Route("api/CqApi/GetSearchResult")]        [HttpPost]        public IEnumerable
GetSearchResult(Cq cq) { DataEntity de = new DataEntity(); return de.QueryResult(cq); } }}
Source Code

最后我们再实现在前端网页去引用此Web API:
html是这样子的,放置一个文本框,让用户输入参数。一个铵钮,让用户请求或查询数据库。还有把结果呈现在一个tabel中:

 

Aid Avalue Cid Cvalue
{
{c.Aid}}
{
{c.Avalue}}
{
{c.Cid}}
{
{c.Cvalue}}
Source Code

 

 angularjs代码:

 

var oApp = angular.module('CqApp', [])        oApp.controller('CqCtrl', function ($scope, $http) {            $scope.QuerySearch = function () {                var obj = {};                obj.Cid = $scope.Cid;                $http({                    method: 'POST',                    url: '/api/CqApi/GetSearchResult',                    dataType: 'json',                    headers: {                        'Content-Type': 'application/json; charset=utf-8'                    },                    data: JSON.stringify(obj),                }).then(function (response) {                    $scope.Cqs = response.data;                });            };        });
Source Code

演示:

 

转载地址:http://mjupl.baihongyu.com/

你可能感兴趣的文章
一个最简单的通过WireShark破解SSL加密网络数据包的方法
查看>>
教你用TensorFlow和自编码器模型生成手写数字(附代码)
查看>>
荣之联“云桥OneBridge”让IT运维事半功倍
查看>>
中国人工智能学会通讯——人工智能在各医学亚专科的发展现状及趋势 1.3 人工智能在各医学亚专科的发展态势...
查看>>
新技术、新思维开创公共安全管理新模式
查看>>
新产品发布与A轮2000万美元 双喜临门后GrowingIO还要做什么
查看>>
《大数据、小数据、无数据:网络世界的数据学术》一 导读
查看>>
玉山银行的一名新员工“玉山小i随身金融顾问”
查看>>
消除危害 让BYOD策略更安全的几个秘诀
查看>>
云端卫士架构师讲DDoS攻击的智能防御之道
查看>>
《算法技术手册》一2.4.6 二次方的算法性能
查看>>
物联网时代全面降临
查看>>
什么是新IP的四层网络技术
查看>>
大数据流通存隐忧 产业信任体系亟待建立
查看>>
WebGL初探
查看>>
数据中心建设“优劣”在于这几个关键问题
查看>>
微软在慕尼黑设立欧洲首个物联网实验室
查看>>
逆变器的技术创新 让光伏电站更具发展前景
查看>>
光伏电价断崖式下跌 企业遭遇成长烦恼
查看>>
新型智能电视攻击,9成国外设备或受影响
查看>>