ASP.NET 6 APIコントローラに移行しようとしていて、JS関数のPOSTデータがnullとして表示されています。ASP.NET APIコントローラでPOSTデータがnullの場合
私は、次のようなJSON要求を持っている:
// searchTerms is an array with 2 properties, Value and Type
$.ajax({
type: 'Post',
contentType: 'application/json',
dataType: "json",
data: JSON.stringify({
searchTerms
})
私はASP.NET 6 MVCコントローラにこれを投稿する場合:
public ActionResult Search(List<SearchTerm> searchTerms)
その後、私のSearchTermsリストが正しく入力されます。私はAPIコントローラ
[System.Web.Http.HttpPost]
[System.Web.Http.Route("api/search")]
public IHttpActionResult Search([FromBody] List<SearchTerm> searchTerms)
その後のSearchTermsに投稿する場合
はnullです。
私はcontentType、dataTypeを変更しようとしましたが、stringify関数を無駄に削除しました。
私は明らかに私が適切に拘束力はないよ、
public IHttpActionResult Search([FromBody] dynamic value)
し、次を参照してくださいに変更署名に試してみましたか?
data: JSON.stringify({
searchTerms
})
だけで使用するように
$.ajax
コールを変更
:
data: JSON.stringify(searchTerms)
public class SearchTerm
{
public string Value { get; set; }
public string Type { get; set; }
}
SearchTermモデルを投稿できますか? – Werner
リストを直接渡すのではなく、 'SearchTerm'のリストを持つモデルを渡していると思います。しかし、それはちょうど推測です。 – Werner
どうすれば解決できますか?それは古いコントローラのために働くことに注意してください。 –