我正在使用VB.Net和MVC5。我有一个用javaScript创建的对象,如下所示:

        var myEdits = {
            listOfIDs: [],
            listOfValues : []
        };


我需要将此对象发送到控制器,并使用其包含的信息移至下一个视图。

我可以成功地对对象进行字符串化,然后通过ajax将其传递给控制器​​,并处理数据,但这不能使我成功渲染新视图。

我试图这样使用window.locationendodeURIComponent

            myEdits = encodeURIComponent(JSON.stringify(myEdits));

            var postString = ("/ViewDetails/EditConfirmation/" + myEdits);

            window.location = postString;


但是我仍然收到此错误:


  从客户端(:)检测到潜在的危险Request.Path值。


我觉得很奇怪,因为在请求中看不到任何::


  EditConfirmation /%7B“ listOfIDs”%3A%5B“ 22”%2C“ 23”%2C“ 24”%2C“ 25”%2C“ 26”%2C“ 27”%2C“ 28”%2C“ 29”% 2C“ 30”%2C“ 31”%2C“ 32”%2C“ 33”%2C“ 34”%2C“ 35”%2C“ 36”%5D%2C“ listOfValues”%3A%5B“”%2C“ “%2C”“%2C”“%2C”“%2C”“%2C”“%2C”“%2C”“%2C”“%2C”是“%2C”是“%2C”是“%2C “是”%2C“否”%5D%7D


通过javaScript或jQuery将此对象传递给控制器​​,并使服务器呈现新视图的正确方法是什么?

最佳答案

由于您使用的是HTTP GET,因此正在对URL进行编码。如果您要发送大量这样的信息,则可能要使用HTTP POST。参见jQuery的$ .ajax方法。

如果您真的想继续使用GET,请放心,如果您的操作采用了字符串参数,则冒号将按预期通过。 :被编码为%3A(所有这些均请参见:http://www.w3schools.com/tags/ref_urlencode.asp)。

关于javascript - 如何将JSON字符串化的JavaScript对象发送到服务器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32103972/

10-13 08:25