webapi之dynamic传值

weiapi接口
webapi普通传值get类型

第一种

weiapi

public List searchInstweek(string type, int year, int week)
前台ajax传值为

$.ajax({
url: ‘…/api/ScheduleApi/searchInstweek’,
type: “Get”,
dataType: “json”,
data: ({ type: ShowText, year: DayYear, week: DayWeek }),
success: function (data) {
options.success(data);
}
});

第二种

使用Post类传值类型

webapi

[HttpPost]
public void PostWorkflowStep(Workflow_Step workflowStep)
Workflow_Step 是一个类是一个表的模型

前台ajax传值为
  options.data.WorkflowInfoId = InfoId;
                options.data.Name = options.data.ItemName;
                options.data.AuthoriseType = "Single";
                options.data.Status = "";
                options.data.Object = "";
                options.data.FormAddress = "";
                options.data.FormFunction = "";
                options.data.IsUserGroup = 1;
                $.ajax({

                    url: '../api/WorkflowChartApi/PostWorkflowStep',
                    type: "Post",
                    dataType: "json",
                    headers: {
                        "Content-Type": "application/json",
                        "X-HTTP-Method-Override": "Post"
                    },

data: JSON.stringify(options.data),传值

                        success: function (results) {
                        //操作成功的操作
                        options.success(options.data);
                        GENWORKFLOWCHARTDIAGRAM.dataSource.read();
                    },
                    error: function (results) {
      }
                });
            },

第三种

使用 dynamic传值方式

webapi

[HttpPost]
public void PostInfo(dynamic obj )

前台ajax

function AddTzfunction(a,b,c) {
debugger
$.ajax({
url: ‘…/api/ScheduleApi/PostInfo’,
type: “Post”,
dataType: “json”,
data: JSON.stringify({Time: a, SampleId: b, rr: “123” }),
contentType: “application/json; charset=utf-8”,
success: function (data) {
options.success(data);
}
});
}

abc为任意类型

接收的方式
var Time = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(obj.Time));
var SampleId = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(obj.SampleId));
string aa = Convert.ToString(obj.rr);
List TimeList = new List();
List SampleList = new List();

dynamic的优势

满足程序在运行的时创建对象的需求,而不需要提前定义一个类然后再对该类进行实例化。
类型转换简单,可以直接进行类型转换,而不需要使用 类型转换函数(Convert, tryPase)进行转换
可以动态的为类型添加字段属性。
给程序的扩展带来的方便(例如我定义了一个函数 该函数功能是用dapper 查询不同基础信息表并返回不同表的实体对象。但由于 项目开发的过程中可能根据项目的复杂度不断的添加其他基础信息表,为了在不变动程序的前提下,实现该功能 ,dynamic 便成了唯一的选择)
————————————————
版权声明:本文为CSDN博主「智者长存」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/liufeifeinanfeng/article/details/90229659

个人使用dynamic的原因,传值时,值得类型是多重的,需要一起传输,有时候在接收的时候无法有效便捷的拿到我想要的值,dynamic这个强类型的出现让我能够快速的拿到我需要的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

因为有你更精彩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值