Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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# 为什么我在asp.net中的POST中变为null_C#_Asp.net_Rest_Api - Fatal编程技术网

C# 为什么我在asp.net中的POST中变为null

C# 为什么我在asp.net中的POST中变为null,c#,asp.net,rest,api,C#,Asp.net,Rest,Api,我的web api中有一个POST方法,它在POSTMAN中运行良好。 这是我的web api代码: [AcceptVerbs("GET", "POST")] public IEnumerable<TuitionHistoryStudent> GetTuitionHistoryStudent(TuitionHistoryStudent student) { List<TuitionHistoryStudent> tuitionHistory

我的web api中有一个POST方法,它在POSTMAN中运行良好。 这是我的web api代码:

[AcceptVerbs("GET", "POST")]
    public IEnumerable<TuitionHistoryStudent> GetTuitionHistoryStudent(TuitionHistoryStudent student)
    {
        List<TuitionHistoryStudent> tuitionHistoryList = new List<TuitionHistoryStudent>();
        try
        {
            Connection();
            SqlCommand cmd = new SqlCommand("spTuitionHistoryStudent", conn);
            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("StudentID", student.StundentID);
            conn.Open();
            SqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                TuitionHistoryStudent tuitionHistory = new TuitionHistoryStudent();
                tuitionHistory.StundentID = Convert.ToInt32(reader["StudentID"]);
                tuitionHistory.TutionTeacherID = Convert.ToInt32(reader["TutionTeacherID"]);
                tuitionHistory.Class = reader["Class"].ToString();
                tuitionHistory.Subject = reader["Subject"].ToString();
                tuitionHistory.Time = reader["Time"].ToString();
                tuitionHistory.Date = reader["Date"].ToString();
                tuitionHistory.Ratting = Convert.ToInt32(reader["Rating"]);
                tuitionHistoryList.Add(tuitionHistory);
            }
            conn.Close();
        }
        catch (Exception)
        {
        }
        return tuitionHistoryList;

    }
[AcceptVerbs(“GET”、“POST”)]
公共IEnumerable GetuitionHistoryStudent(TutionHistoryStudent)
{
List tutionHistoryList=新列表();
尝试
{
连接();
SqlCommand cmd=新的SqlCommand(“SPCtutionHistoryStudent”,康涅狄格州);
cmd.CommandType=System.Data.CommandType.StoredProcess;
cmd.Parameters.AddWithValue(“StudentID”,student.StudentID);
conn.Open();
SqlDataReader=cmd.ExecuteReader();
while(reader.Read())
{
TutionHistory学生TutionHistory=新TutionHistory学生();
tutionhistory.StundentID=Convert.ToInt32(reader[“StudentID]”);
tutionhistory.TutionTeacherID=Convert.ToInt32(读卡器[“TutionTeacherID]”);
tutionhistory.Class=reader[“Class”].ToString();
tutionhistory.Subject=reader[“Subject”].ToString();
tutionhistory.Time=reader[“Time”].ToString();
tutionhistory.Date=reader[“Date”].ToString();
tutionhistory.Ratting=Convert.ToInt32(读卡器[“评级]);
学费历史列表。添加(学费历史);
}
康涅狄格州关闭();
}
捕获(例外)
{
}
返回学费历史列表;
}
这是我的代码,其中是调用我的url:

public async void ShowTuitionSistoryAsync()
    {
        int StudentID = 1017;
        string url = "my_url";
        HttpClient client = new HttpClient();
        string jsonData = JsonConvert.SerializeObject(new { StudentID = StudentID });
        StringContent content = new StringContent(jsonData, Encoding.UTF8, "application/json");
        HttpResponseMessage response = await client.PostAsync(url, content).ConfigureAwait(true);
        var result = await response.Content.ReadAsStringAsync();
        if(result != null)
        {
            var ListOfHistory = JsonConvert.DeserializeObject<List<TuitionHistoryStudent>>(result);
        }
        else
        {
            //
        }

    }
public async void showtuitionsistorySync()
{
int StudentID=1017;
string url=“我的url”;
HttpClient=新的HttpClient();
字符串jsonData=JsonConvert.SerializeObject(新的{StudentID=StudentID});
StringContent=新的StringContent(jsonData,Encoding.UTF8,“application/json”);
HttpResponseMessage response=await client.PostAsync(url、内容).ConfigureAwait(true);
var result=await response.Content.ReadAsStringAsync();
如果(结果!=null)
{
var ListOfHistory=JsonConvert.DeserializeObject(结果);
}
其他的
{
//
}
}
我总是得到这个空结果“[]”。
你们能告诉我问题出在哪里吗?

你们得到的http状态码是什么?这是成功状态码吗?我看到您正在捕获GetTutionHistoryStudents方法中的任何异常。你能调试API并验证捕获是否没有被触发吗。捕获不触发。在WebAPI中,我检查了。它总是在循环中运行。完成循环并返回我想要的对象列表。我不知道当我试图调用我的url时是否出现了问题。您得到了哪个http状态码的响应?状态码是:System.Net.HttpStatusCode.OK在GetuitionHistoryStudent中放置一个断点,然后查看到达那里的内容