繁体   English   中英

c#http post以可读的字符串格式从Request.Form获取数据

[英]c# http post get data from Request.Form in readable string format

我在客户端有这个

            $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;

    }

当我在服务器中发送数据时,我得到类似"{%7b%22dataSource%22%3a%7b%22type%22%3a%22xmla%22%2c%22c"

如何将其格式化为人类可读的格式,例如: "{"dataSource":{"type":"xmla","columns":[{"name"

那么以后可以将其写入文件吗?

你可以只使用UrlDecode

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

但是我认为您的Json Doc不完整

注意如果未完成,则必须引用System.Web

您可以避免编码/解码。 在客户端:

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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM