1

Windowsフォームアプリを使用してPOSTした場合(コードの2番目のピースダウン)、ボタンクリック2で学生コレクションをデータグリッドにGETしようとすると、何も表示されません。メンバーをハードコーディングしてGETしても問題ありませんが、POSTできませんか?投稿のbutton1をクリックすると、メッセージボックスに「OK」と表示されます。だから私が何をしたのかよくわからない...

    [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml, UriTemplate = "")]
    void AddStudent(Student student);

            XDocument xDoc = XDocument.Load(uri);
            var students = xDoc.Descendants("Student")
                .Select(n => new
                {
                    StudentNo = n.Element("StudentID").Value,
                    Firstname = n.Element("FirstName").Value,
                    Surname = n.Element("LastName").Value
                })
                .ToList();

            dataGridView1.DataSource = students;
        }
4

3 に答える 3

1

Are you running in Per Call Activation mode? If so, every client request gets a new dedicated service instance, so your List<> is being recreated as empty every time.

See this reference article. You'll have to persist your List between calls, either in a Cache or Database.

于 2012-04-06T01:24:43.357 に答える
0

Your AddStudent is not adding to the list

public void AddStudent(Student student)
{
    student.StudentID.ToString();
    student.FirstName.ToString();
    student.LastName.ToString();
}

And GetStudentCollection is returning the same hard coded values.

static List<Student> students = new List<Student>();
public void AddStudent(Student student)
{
   students.Add(student);

}

public List<Student> GetStudentCollection()
{
    return students;
}
于 2012-04-05T20:28:42.110 に答える
0

Your service is doing exactly what you wrote in code. ListStudents constantly returns the same list of the students, AddStudent do nothing with the list.

于 2012-04-05T20:37:32.747 に答える