繁体   English   中英

将编码的字符串发送回服务器asp.net mvc

[英]send encoded string back to server asp.net mvc

我建立以下编码的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,但我认为那没有意义。 谢谢

像这样将数据作为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将其转换回其本机对象表示法。 这样就消除了对字符进行编码的需要,这将由浏览器自动完成,服务器将其解码回去,如您所见。

暂无
暂无

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

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