如何在MVC Action中获取发布的数据?

Nic*_*ick 3 c# asp.net-mvc controller

我试图将一些数据发布到ASP.NET MVC控制器操作.目前我正在尝试使用WebClient.UploadData()将几个参数发布到我的操作中.

以下命令将执行操作,但所有参数均为null.如何从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;
}
Run Code Online (Sandbox Code Playgroud)

这是我打电话的行动

public ActionResult BuildPreview(string hwid,string label,string interchange,string localization){...}

达到此Action时,所有参数均为null.

我尝试使用WebClient.UploadValue()并将数据作为NameValueCollection传递.这个方法总是返回500的状态,因为我从MVC应用程序中发出这个http请求,我找不到一种方法来愚弄这个.

任何帮助解决这个问题都会非常有帮助.

-缺口

我更正了标题:

client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
Run Code Online (Sandbox Code Playgroud)

现在,UploadData只是错误,服务器错误500.

Ebe*_*oux 5

只是笑在看看Request.FormRouteData你的控制器,看看是否结束的东西在那里.