如何在Web服务中获取多个输入

时间:2016-08-02 14:30:53

标签: c# web-services

使用C#

目前我正在使用网络服务来显示员工详细信息

当前逻辑

Getting the 4 inputs (employee id, name, date of join, email) as a string, sending the input to DB as a parameter and retrieve the procedure output in dataset and displayed the dataset output (employee id, name, date of join, email, address, passport no, etc). This is working fine for single employee information.

现在,我希望获得批量员工输入并在Web服务中显示批量员工输出

如何让批量员工输入详细信息

例如,如果应用程序想要获得20个员工详细信息,那么应用程序需要提供员工ID,姓名,加入日期,电子邮件作为20名员工的输入。

应用程序如何通过数据集或任何其他想法向webservice发送20 * 4 = 80输入的请求?

任何人都可以帮助或建议我

如果问题不明确或有任何疑问,请随时问我。

2 个答案:

答案 0 :(得分:1)

通常对于类似的东西,你需要用某种附加的数据blob进行POST(数据本身可以是你喜欢的任何格式,只要你的服务器能够理解它并做出相应的响应)。你可以想象在URL中传递它们,但这有点疯狂。

答案 1 :(得分:1)

您应该使用请求属性创建一个类,如:

public class RequestParams
{
    public int employeeID { get; set; }
    public string Name { get; set; }
    public DateTime DateOfJoin { get; set; }
    public string Email { get; set; }
}

这将是您的方法输入参数:

public EmployeesDetails GetDetails(RequestParams[] r)

确保在javascript中使用相同的结构并使用JSON.Parse正确解析

*编辑,例如:

 [WebMethod]
    public EmployeesDetails GetDetails(RequestParams[] request)
    {


        // Query the database, request contains an array of  RequestParams
    }

public class RequestParams
{
    public int employeeID { get; set; }
    public string Name { get; set; }
    public DateTime DateOfJoin { get; set; }
    public string Email { get; set; }
}
public class EmployeesDetails
{
    public int PassportNumber { get; set; }
}

JSON示例(不要抓住我解析错误,我快速写了手册):

{'request':[
'RequestParams':{
    'employeeID':'1',
    'Name':'1',
    'DateOfJoin':'1',
    'Email':'sgd@asdf.d'},
    {
    'employeeID':'2',
    'Name':'2',
    'DateOfJoin':'2',
    'Email':'sgd@asdf.d'},
    {
    'employeeID':'3',
    'Name':'3',
    'DateOfJoin':'3',
    'Email':'sgd@asdf.d'},
    {
    'employeeID':'4',
    'Name':'4',
    'DateOfJoin':'4',
    'Email':'sgd@asdf.d'}
}]}