、thisによると:パラメータが「シンプル」タイプであるWebAPIのルーティング:だから、単一の文字列パラメータ
- 場合は、ウェブAPIは、URIから値 を取得しようとします。単純な型には、.NETプリミティブ型(int、 bool、doubleなど)、TimeSpan、DateTime、Guid、10進数、 および文字列、および から文字列に変換できる型変換器を持つ型が含まれます。複合型の場合、Web APIは、メディアタイプの フォーマッタを使用して、メッセージ本文から値を読み取ろうとします。
私は、ユーザの入力からのシングルstring
パラメータを持つPOST
作用を有し、したがって、任意の文字することができます - など外国人、ユニコード、アポストロフィ、「%20」何でも!
私はこのパラメータをURLに含めることを嫌っており、[FromBody]
デコレータは役に立たないようです。質問は:WebAPIコントローラに単一の文字列パラメータを送信するための最良のもの[a-hem]
のC#:
[HttpPost]
[Route("api/add")]
public void Add([FromBody]string name)
{
// name is null :(
}
JS:
function add(name: string) {
return this.$http.post("api/add/", name);
}
'[FromBody]'属性がないからです。私はリクエストボディに私の価値を送った。そして、それは動作します。それが生成するリクエストを確認できますか? (ブラウザーまたはフィドラーで) – MaKCbIMKo
文字列の値の前後に引用符がないのでちょっとばかげています! – Tsar
あなたのイメージの '/ localhost/**** /'のすべてのインスタンスをブロックしていませんでした:p – Brandon