2

フォーム値を使用してアクションに HTTP POST を実行しました。

名前=123+456

しかし、私の行動では、次のようになります。

123 456

そのため、モデル バインダーは "+" をスペースに置き換えます。

[HttpPost]
public JsonResult MyAction(string name)
{

何か案は?カスタム モデル バインダーなどを作成する必要がありますか?

編集:

これは、次のように jquery に投稿されます。

$.ajax({
...
data: "name=" + $('#signin-username').val()
...
});

JSON.stringify などを使用する必要がありますか? または、手動でエンコードする必要がありますか?

4

2 に答える 2

6

文字は、+スペースが通常 URL でエンコードされる方法です。をエンコードしてみてください+:

name=123%2B456

jQuery で、次のencodeURIComponentメソッドを使用します。

$.ajax({
    ...
    data: "name=" + encodeURIComponent($('#signin-username').val())
    ...
});
于 2014-01-08T23:22:19.000 に答える
1

これは、データが URL エンコードされている場合、+ は前にスペースがあったことを意味するためです。

代わりに、プレーン テキストとして解析する必要があることを宣言する別のヘッダーを設定してみてください。

ヘッダーを教えずにiPhoneから返信して申し訳ありませんが、現時点ではリソースが非常に限られています.

于 2014-01-08T23:26:20.493 に答える