我正在尝试将字符串值发布到控制器中的方法。我的控制器没有视图。是否可以从控制台应用程序调用和发布此操作方法?
我从堆栈溢出尝试了一些解决方案。
控制台应用中的代码:
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("http://localhost:6586/MacCommService/LoadBalanceMacValues");
webRequest.Method = "POST";
var data = string.Format("jsonValues={0}", Uri.EscapeDataString(encryptedJson));
StreamWriter requestWriter = new StreamWriter(webRequest.GetRequestStream());
requestWriter.Write(data);
requestWriter.Close();
MacCommServiceController中的代码:
public ActionResult LoadBalanceMacValues(string jsonValues) {
//var macKey = ConfigurationManager.AppSettings["macKey"].ToString();
jsonValues = "etc";
Response.Write("Json from action: " + jsonValues);
return View();
}
答案 0 :(得分:1)
我想你不要设置ContentType
的{{1}},也不要格式化 Json :
httpWebRequest
同样在你的控制器中你应该像这样返回Json:
var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://localhost:6586/MacCommService/LoadBalanceMacValues");
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = "{ \"jsonValues\" : \"" + Uri.EscapeDataString(encryptedJson) + "\" }";
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
}