从 C# 中的对象或字符串中删除转义字符?

Remove Escape character from object or string in c#?

我正在通过 ajax 将字符串传递给 mvc 中的操作方法, 下面是我的ajax电话

                $("#btnEncrypt").click(function () {
                var pay = JSON.stringify({
                  'payload': {"exp":1442515543,"method":"Login"},
                  'secretKey': "123456"
                });             

                $.ajax({
                type: "POST",                    
                url: '@Url.RouteUrl("GetData")',                   
                data: pay,
                contentType: 'application/json; charset=utf-8',
                success: function (data) {                        
                    alert("Success");
                },
                error: function () {
                    alert('error');
                }
                });
                }); 

下面是我的操作方法(生成),我在其中传递了两个参数

                [HttpPost]
                public ActionResult Generate(string payload, string secretKey)
                {
                 Here I am getting payload as "{\"exp\":1442515543,\"method\":\"Login\"}" 
                 instead of "{"exp":1442515543,"method":"Login"}"
                }

那么,我怎样才能得到我正在通过 ajax 调用

的原始请求
    "{"exp":1442515543,"method":"Login"}" 

在没有转义字符的动作方法中?提前谢谢你:)

注意: 1)我曾尝试过不对请求参数进行字符串化,但是没有用。 2)这里的参数(exp和方法)根据不同的请求而变化,我有大约200个请求都使用不同的参数。

1) 构建一个 PayloadDto c# 对象

使用 exp 和方法属性,然后在您的方法定义中:

public ActionResult Generate(PayloadDto payload, string secretKey)

2) 构建一个 PayDto c# 对象

构建一个聚合 PayloadDto 和 secretKey 字符串的 PayDto。

public ActionResult Generate(PayDto pay)

这里只需要反序列化Action处的payload去掉escape character

var obj = new JavaScriptSerializer().Deserialize(payload,targetType:null);

问题已解决:)