Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用WebRequest(无模型)将对象传递给外部Web Api ASP.NET MVC_C#_Ajax_Asp.net Mvc 4_Asp.net Web Api2 - Fatal编程技术网

C# 如何使用WebRequest(无模型)将对象传递给外部Web Api ASP.NET MVC

C# 如何使用WebRequest(无模型)将对象传递给外部Web Api ASP.NET MVC,c#,ajax,asp.net-mvc-4,asp.net-web-api2,C#,Ajax,Asp.net Mvc 4,Asp.net Web Api2,我有一个asp.NETMVC和外部WEBAPI。我想按以下顺序传递数据: 从Ajax到MVC控制器 从MVC控制器到外部WEBAPI 外部WEBAPI发送响应 MVC控制器收到响应 MVC控制器返回对AJAX的响应 问题: 它可以保存到数据库,但所有值都是0。好像我经过的东西不见了,但我不知道在哪里 我真的需要帮助。谢谢 下面是我调用MVC控制器的Ajax代码: function savePostApplication(theData) { var insert = {}; insert.J

我有一个asp.NETMVC和外部WEBAPI。我想按以下顺序传递数据:

  • 从Ajax到MVC控制器
  • 从MVC控制器到外部WEBAPI
  • 外部WEBAPI发送响应
  • MVC控制器收到响应
  • MVC控制器返回对AJAX的响应
  • 问题: 它可以保存到数据库,但所有值都是0。好像我经过的东西不见了,但我不知道在哪里

    我真的需要帮助。谢谢

    下面是我调用MVC控制器的Ajax代码:

    function savePostApplication(theData) {
     var insert = {};
     insert.JobTitleId = JobTitleId;
     insert.Division = Division;
     insert.SalaryScaleId = SalaryScaleId;
     insert.DepartmentId = DepartmentId;
     insert.MinistryId = MinistryId;
    
     $.post("/Advert/AddAdvertApplication", theData,
             function (response) {
                alert(response);
     });
    }
    
    这是我的MVC控制器代码:

    public String AddAdvertApplication(JSON data)
            {
                var url = "https://localhost:44331/api/jobadvertisementdetails";
    
                var wr = WebRequest.Create(url);
                wr.Method = "POST";
    
                string json = JsonConvert.SerializeObject(data);
                byte[] byteArray = Encoding.UTF8.GetBytes(json);
    
                wr.ContentType = "application/x-www-form-urlencoded";
    
                wr.ContentLength = byteArray.Length;
    
                var dataStream = wr.GetRequestStream();
    
                dataStream.Write(byteArray, 0, byteArray.Length);
    
                dataStream.Close();
    
                WebResponse response = wr.GetResponse();
    
                var Status = ((HttpWebResponse)response).StatusDescription;
    
                dataStream = response.GetResponseStream();
    
                StreamReader reader = new StreamReader(dataStream);
    
                string responseFromServer = reader.ReadToEnd();
                reader.Close();
                dataStream.Close();
                response.Close();
    
                return responseFromServer;
            }
    
    这是我的WEBAPI代码:

    public String PostJobAdvertisementDetail(JobAdvertisementDetail jobAdvertisementDetail)
            {
                try
                {
                    DataTable table = new DataTable();
    
                    String query = @"insert into dbo.JobAdvertisementDetails (JobTitleId, Division, SalaryScaleId, DepartmentId, MinistryId) values (" + jobAdvertisementDetail.JobTitleId +
                        @"," + jobAdvertisementDetail.Division + "," + jobAdvertisementDetail.SalaryScaleId +
                        @","+jobAdvertisementDetail.DepartmentId+","+jobAdvertisementDetail.MinistryId+")";
    
                    using(var con = new SqlConnection(ConfigurationManager.ConnectionStrings["CONN"].ConnectionString))
                    using(var cmd = new SqlCommand(query, con))
                    using(var da = new SqlDataAdapter(cmd))
                    {
                        cmd.CommandType = CommandType.Text;
                        da.Fill(table);
                    }
                    return "Data Saved";
                }
                catch (Exception ex)
                {
                    return "Error";
                }
            }
    
    更新:
    现在可以了。我只是将内容类型从“application/x-www-form-urlencoded”更改为“application/json”

    您正在填充
    insert
    但正在传递
    数据
    …您是在传递数据还是在插入?如果您发送的是json数据,那么AddAdvertApplication方法中的wr.ContentType应该是“application/x-www-form-urlencoded”,如果有效,请尝试一下。我会一直从ajax、controller传递数据,最后插入webapi