2016-06-17 16 views
0

コントローラ内のメソッドに文字列値をポストしようとしています。私のコントローラには何の意見もありません。このアクションメソッドをコンソールアプリケーションから呼び出してポストすることは可能ですか?ビューなしでコンソールアプリケーションからMVCアクションを呼び出す方法

私はスタックオーバーフローからいくつかのソリューションを試しました。コンソールアプリで

コード:MacCommServiceControllerで

   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(); 

コード:

 public ActionResult LoadBalanceMacValues(string jsonValues) { 
     //var macKey = ConfigurationManager.AppSettings["macKey"].ToString(); 
     jsonValues = "etc"; 

     Response.Write("Json from action: " + jsonValues); 
     return View(); 
    } 

答えて

1

私はあなたのhttpWebRequestContentTypeを設定しないとよくあなたのJSONをフォーマットしないGESS:

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(); 
} 

Aあなたのコントローラーでは、あなたは次のようにJsonを返すべきです:

+0

誰かがここで命を救う人です! – Hasan

関連する問題