2017-05-12 4 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을 얻을 것이다.

관련 문제