0

ASP.NET MVC Web API の FormDataCollection が値を自動デコードしているようです。これをオフにする方法はありますか?私はフィドラーを使用して、次のデータを自分の URL に投稿しています。

.code=2001&Color=Lam%E9%20Purple

残念ながら、色は既にデコードされており、次のようになります。

Lam� Purple

私が得たいと思っていたのはこれです:

Lamé Purple

使用したコード:

[HttpPost]
public HttpResponseMessage PostItem(FormDataCollection collection)
{
    int qty = 5000;
    var response = Request.CreateResponse(HttpStatusCode.Created);
    response.StatusCode = HttpStatusCode.OK;
    if (collection == null)
    {
        response.Headers.Add("Available", qty.ToString());
        return response;
    }

    var item = new Item();
    foreach (KeyValuePair<string, string> keyValuePair in collection)
    {
        switch(keyValuePair.Key)
        {
            case ".quantity":
                item.Qty = Convert.ToInt32(keyValuePair.Value);
                break;
            case ".code":
                item.Style = keyValuePair.Value;
                break;
            case "Color":
                item.Color = keyValuePair.Value;
                break;
            case "Size":
                item.Size = keyValuePair.Value;
                break;
        }
    }

    qty = Repository.GetInventory(item);
    response.Headers.Add("Available", qty.ToString());    
    return response;
}
4

1 に答える 1

0

UTF-8 ではなく、特定のリクエスト エンコーディングを使用しているようです。<globalization>したがって、次の要素を使用して、それに応じて web.config を調整します。

<globalization requestEncoding="iso-8859-1" />

または、正しい utf-8 URL エンコードされたリクエストを送信していることを確認してください:

code=2001&Color=Lam%C3%A9%20Purple
于 2013-02-26T21:25:53.137 に答える