我想將一些數據發佈到ASP.NET MVC Controller Action。目前我正在嘗試使用WebClient.UploadData()將多個參數發佈到我的操作中。如何在MVC Action中獲取發佈的數據?
以下操作將觸發,但所有參數均爲空。如何從http請求獲取發佈的數據?
string postFormat = "hwid={0}&label={1}&interchange={2}localization={3}";
var hwid = interchangeDocument.DocumentKey.Hwid;
var interchange = HttpUtility.UrlEncode(sw.ToString());
var label = ConfigurationManager.AppSettings["PreviewLabel"];
var localization = interchangeDocument.DocumentKey.Localization.ToString();
string postData = string.Format(postFormat, hwid, interchange, label, localization);
using(WebClient client = new WebClient())
{
client.Encoding = Encoding.UTF8;
client.Credentials = CredentialCache.DefaultNetworkCredentials;
byte[] postArray = Encoding.ASCII.GetBytes(postData);
client.Headers.Add("Content-Type", "pplication/x-www-form-urlencoded");
byte[] reponseArray = client.UploadData("http://localhost:6355/SymptomTopics/BuildPreview",postArray);
var result = Encoding.ASCII.GetString(reponseArray);
return result;
}
這裏是我打電話
行動公衆的ActionResult BuildPreview(字符串HWID,串 標籤,串交流,串 本地化){ ...}
當達到此操作時,所有參數都爲空。
我已經嘗試使用WebClient.UploadValue()並將數據作爲NameValueCollection傳遞。這個方法總是返回一個500的狀態,因爲我在MVC應用程序中發出這個http請求,所以我找不到一個方法來調用它。
解決這個問題的任何幫助都會非常有幫助。
-Nick
我糾正了標題爲:立即用
client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
現在UploadData只是錯誤與服務器錯誤500
獲取原始發佈字節內容類型看壞了。你在'pplication/x-www-form-urlencoded'的前面缺少'a'。 – 2011-06-09 02:52:53
謝謝..所以當我糾正我的錯誤UploadData()只有錯誤500 – Nick 2011-06-09 03:04:08
你有任何特殊的路線定義? – Jedidja 2011-06-09 04:28:09