【问题标题】:send encoded string back to server asp.net mvc将编码的字符串发送回服务器 asp.net mvc
【发布时间】:2015-03-09 21:23:02
【问题描述】:

我构建了以下编码的 url:

actionUrl = "MyAction?Vendors=A*A,A%26A,A%2CA"

我想通过 ajax 调用将其发送回我的服务器:

       $.ajax({
    url: actionUrl,        
    cache: false,
    dataType: "HTML",
    success: function (data) {
      alert('hooray');
    },
    error:function(data) {
            alert(data.responseText);
        }

});

但是当这到达我在服务器上的操作时,字符串是这样的:

        Vendors = "A*A,A&A,A,A"

在解码字符串之前,我需要用逗号解析,但它会在我的服务器上解码。如何通过 ajax 将编码字符串发送到我的操作方法?我正在使用 asp.net MVC4,但我认为那没有实际意义。谢谢

【问题讨论】:

  • 为什么不使用管道| 作为值之间的分隔符?

标签: javascript ajax asp.net-mvc


【解决方案1】:

像这样以 JSON 格式发送数据:

var values = ["A*A","A&A","A,A"];
actionUrl = "MyAction?Vendors=" + JSON.stringify(values);

然后在 ASP.net 中,您可以使用 system.Web.Script.Serialization.JavaScriptSerializer 将其序列化为一个对象。

using System.Web.Script.Serialization;

var json = "[\"A*A\",\"A,A\",\"A&A\"]"; //this is the received JSON from the ajax call
var jss = new JavaScriptSerializer();
var values = jss.Deserialize<dynamic>(json);
var value1 = values[0].ToString(); //A*A
var value2 = values[1].ToString(); //A,A
var value3 = values[2].ToString(); //A&A

这样,客户端和服务器之间就不会发生进一步的(不需要的)转换。 JavaScript 将其转换为 JSON,ASP.net 将其转换回其本机对象表示法。因此无需对字符进行编码,这将由浏览器自动完成,服务器将其解码回来,如您所见。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-27
  • 2014-07-19
  • 2015-10-20
相关资源
最近更新 更多