通过表单 C# MVC 发送 JSON 对象

send json object through form c# mvc

本文关键字:发送 JSON 对象 MVC 表单      更新时间:2023-09-26

我正在尝试通过表单将 json 序列化对象发送到 c# MVC 操作。

var object = {
  id: 1,
  field1: "",
  field2: "",
  .
  .
  .
}
var inputs = "<input type'hidden' name='serializedObject' value='" + JSON.stringify(object) + "'/>";
$("<form action='actionUrl' method='POST' >" + inputs  + "</form>").appendTo("body").submit().remove();

服务器端我有一个操作,它采用字符串化对象并解析它们:

[HttpPost]
public virtual FileResult TestAction(string serializedObject){
    //...do stuff....
}

但是在操作中我没有收到整个 json 字符串(我必须使用 form 而不是 ajax,因为我必须下载一个文件)。

我不知道

这是否是您的问题,但是如果您的任何数据值包含单引号,则不会发送此单引号之后的下一个值,单引号无效。

建议所有字段和值必须用双引号括起来。

当我像这样发送对象时:

var object = {
            "id": "1",
            "field1": "Its",
            "field2": "working",
            "field3": "Fine!"
        }

我得到了这个行动:

{"id":"1","field1":"Its","field2":"working","field3":"Fine!"}

但是当我发送这个时:

var object = {
                "id": "1",
                "field1": "It's",
                "field2": "working",
                "field3": "Fine!"
            }

我得到不完整的值:

{"id":"1","field1":"It

您可以将单引号替换为 '("field1":"It&#39s",),这也有效。