私の質問はこの質問に似ていますが、受け入れられた回答に説明を求めるコメントを追加する方法がわからないため、新しい質問を作成する必要があることに注意してください。
次のような休息サービスがあります。
namespace My.API
{
[Route("/event/{Id}", Verbs = "POST")]
public class EventRequest
{
public int Id { get; set; }
public string Content { get; set; }
}
public class EventService : Service
{
public object Post(EventRequest request)
{
// Do something with request.Content
}
}
}
次のフォームデータを使用して投稿リクエストを行うと:
Content=%22this+is+a+%22+test
request.Content に含まれるもの
this is a " tes
最初の二重引用符が欠落しており、テストの最後の t が欠落していることに注意してください。
さて、上にリンクされた他の質問で受け入れられた答えは、文字列をエンコードする必要があると言っていますが、とにかくこれの動作を変更できるかどうか疑問に思っています. パブリック API を作成しようとしています。API のクライアントが特定の方法で文字列をエンコードする必要がある場合、エラーが発生すると思います。通常の文字列を提供できるはずです。
基本的に、次の jQuery ajax 呼び出しが機能するはずです。
$.ajax({
url: "api/event/" + id,
type: "POST",
data: {Content : content}
});
ここで content は生の/エンコードされていない文字列であり、jQuery はサービスに渡す前にフォーム URL エンコードを実行します。サービスは元の生の文字列を返すだけです。