2017-05-12 8 views
0

内のRequest.Formからデータを取得し、私はクライアント側C#HTTP POSTを読みやすい文字列形式

  $http({ 
       method: 'POST', 
       url: "/FileManager/SavePivotFile", 
       data: JSON.stringify(tempOptions), 
       params: { 
        fileName: $stateParams.report.FileName 
       }, 
       headers: { 'Content-Type': "application/x-www-form-urlencoded" }, 
      }) 
      .then(function (success) { 
       showNotification('The changes have been saved.', 'info'); 
      }, function (error) { 
       showNotification('Failed to save the file.', 'error'); 
      }); 

上でこれを持っていると私は、サーバーにデータを送信すると、サーバー上のこれは

[System.Web.Http.HttpPost] 
    public void SavePivotFile(string fileName) 
    { 
     var qqq = Request.Form; 

    } 

私が取得"{"dataSource":{"type":"xmla","columns":[{"name"

"{%7b%22dataSource%22%3a%7b%22type%22%3a%22xmla%22%2c%22c"

のような文字列がどのようにのように人間が読める形式にこれをフォーマットすることができます

これは後でファイルに書き込むことができますか?

+0

「application/x-www-form-urlencoded」ヘッダーを指定してJSON.stringifyを同時に使用するのはなぜですか? – mtkachenko

+0

@mtkachenko Json.Stringfyはオブジェクトをプレーンストリングに入れるだけです。 –

+0

@BRAHIMKamel私は知っていますが、それは形式ではありません。私はちょうどよりエレガントなアプローチについて考えています。この場合 - はい、 "x-www-form-urlencoded"を使用するので、サーバー上でurldecodeを作成する必要があります。 – mtkachenko

答えて

0

あなただけUrlDecode

var str= HttpUtility.UrlDecode("%7b%22dataSource%22%3a%7b%22type%22%3a%22xmla%22%2c%22c"); 

を使用することができますしかし、私はあなたのJSONドキュメントが完了しないと思われる

それが行われていない場合は、System.Webを参照する必要が

0

することができますエンコード/デコードを避ける。

var somedata = { prop1: 1, prop2: 2 }; 
$http({ 
      method: 'POST', 
      url: '@Url.Action("Send", "Test")', 
      data: { Content: JSON.stringify(somedata) } 
     }); 

サーバーの場合:クライアント側で

public class TestController : Controller 
{ 
    [HttpPost] 
    public string Send(Data data) 
    { 
     return data.Content; 
    } 
} 

public class Data 
{ 
    public string Content { get; set; } 
} 

この場合、あなたはdata.Contentプロパティに通常のJSONを取得します。