私のWEB API
プロジェクトでこの奇妙な問題に直面しています。 は、ここに私のプロジェクトのコードスニペットです:ASP.NET WEB APIのモデルバインディングの問題
モデルクラス:
[DataContract]
public class StudentInfo
{
[Key]
[DataMember]
[StringLength(20)]
public string StudentId {get; set;}
[Key]
[DataMember]
[StringLength(20)]
public string FirstName {get; set;}
[Key]
[DataMember]
[StringLength(20)]
public string LastName {get; set;}
[DataMember]
[StringLength(20)]
public string ContactNumber {get; set;}
[DataMember]
[StringLength(20)]
public string Gender {get; set;}
[DataMember]
[StringLength(20)]
public string Course {get; set;}
[DataMember]
public DateTime? CreatedDate {get; set;}
}
コントローラクラスのメソッド:
[Route("/Student/AddNewStudent")]
[HttpPost]
public IHttpActionResult AddNewStudent([FromBody]StudentInfo studentInfo)
{
/* Business Logic Here */
}
私は以下のXMLを投稿するシオマネキを使用していますコントローラ:
<StudentInfo xmlns:www.w3........ xmlns:something>
<StudentId>ST00001</StudentId>
<FirstName>John</FirstName>
<LastName>Smith</LastName>
<ContactNumber>90</ContactNumber>
<Gender>MALE</Gender>
<Course>Computer Science</Course>
<CreatedDate /> -- Value assigned from controller code
</StudentInfo >
このメソッドは、Fiddlerから呼び出されますが、すべてのプロパティがxml要素の値でバインドされているわけではありません。
studentInfoオブジェクトは、このようなものになります。
StudentId ST00001
FirstNme null
LastNme null
ContactNumber null
Gender null
Course null
CreatedDate 01/01/0001T:00:00 -- Value is being changed by the controller
code later.
を私はDatContractプロパティとDataMember attrributesを削除しようとしたが、結果は同じでした。私はデフォルトのDataContractSerializationを使用していますが、XMLSerializationでも試してみましたが、使用しません。
私はここで何が不足しているのか、どうすれば修正できるのか教えてください。
をコードは、Orderプロパティを追加した後にうまく働いたおかげでたくさん... :)。 –