Jquery 使用Ajax(客户端)和CSHTML(服务器)将JSON对象从客户端发送到服务器

Jquery 使用Ajax(客户端)和CSHTML(服务器)将JSON对象从客户端发送到服务器,jquery,ajax,razor,Jquery,Ajax,Razor,我正在努力: 1.将JSON对象从客户端发送到服务器 2.在服务器端解析对象。 3.对原始对象中的一些字段进行编码,并将其作为ne JSON对象发送到客户端 这是我当前的代码: 客户端(JQuery Ajax): 它不起作用。我假设服务器端代码没有正确读取JSON对象 您正在执行HTTP GET,其目的是在客户端从服务器接收数据。您应该做一个POST,它旨在向服务器发送数据 在服务器端,您应该在控制器中编写一个操作来接收来自客户端的数据,并且应该在该操作上添加HttpPost属性 我知道你会问如

我正在努力: 1.将JSON对象从客户端发送到服务器 2.在服务器端解析对象。 3.对原始对象中的一些字段进行编码,并将其作为ne JSON对象发送到客户端

这是我当前的代码:

客户端(JQuery Ajax):


它不起作用。我假设服务器端代码没有正确读取JSON对象

您正在执行HTTP GET,其目的是在客户端从服务器接收数据。您应该做一个POST,它旨在向服务器发送数据

在服务器端,您应该在控制器中编写一个操作来接收来自客户端的数据,并且应该在该操作上添加HttpPost属性

我知道你会问如何做到这一点,但要想找到这个问题的答案,最好的方法不是让我在这里写一篇关于它的大文章,甚至是向你展示代码,而是让你先做一个关于使用代码创建MVC应用程序的教程,例如,让脚手架为您在教程中创建的模型构建控制器,然后查看为您创建的创建、编辑和删除操作

客户端表单不明显地使用AJAX,因为它被HTML表单机制隐藏起来。就AJAX客户端代码而言,您可以查看$post的jQuery文档,注意类型(第4个)参数

Razor用于MVC的V(视图)部分,而不是用于从客户端接收数据

<script>
$(document).ready(function () {
    var obj = {};
    obj['marks']= ["hi"]; //array 
    $.getJSON("ServerTest.cshtml", JSON.stringify(obj) , function (result) {
        $.each(result, function (i, field) {
            if (i == "TextToSend") {
                $('#inner_body').append('<div class="abc">' + field + '</div>');
            }
        });
    });
});
</script>
@{
    //Recieve and convert JSON Array
    var reader = new StreamReader(Request.InputStream);
    var jsonA = reader.ReadToEnd();
    var objArray= Json.Decode(jsonA);

    // Create a JSON Array
    var ServerResponse = new {
    TextToSend = new string[1],
    };

    ServerResponse.TextToSend[0] = objArray.marks[0];

    var json = Html.Raw(Json.Encode(ServerResponse));
    Response.Clear();
    Response.ContentType = "application/json; charset=utf-8";
    Response.Write(json);
    Response.End();
}