0
似乎ASP.NET MVC Web API中的FormDataCollection自動解碼值。有沒有辦法關閉它?我使用小提琴手以下數據發佈到我的網址:在ASP.NET MVC WebApi中打開AutoDecode off
.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;
}
我應該提到,我已經嘗試過這一點。它的結果是一樣的。 – vikasde 2013-02-26 21:28:17
我已經更新了我的答案。嘗試發送'Color = Lam%C3%A9%20Purple'而不是'Color = Lam%E9%20Purple'的正確utf-8 url編碼值。 – 2013-02-26 21:28:30
我無法控制請求。但是我可以看到字符串正在被轉義。我只需要避開它,但asp.net解碼之前,我可以unescape。 – vikasde 2013-02-26 21:30:27