在asp.net中接收json对象

时间:2015-11-12 05:32:07

标签: asp.net json asp.net-mvc

我正在使用MVC。我的HTML代码是:

<form action="/Electronics/Temp1" method="post">
    <input type="hidden" name="files" id="fileNames" />
    <input type="submit" />
</form>

我将输入字段中的数据附加为:

$("input[id*='fileNames']").val(JSON.stringify(fileList));

fileList中的数据是: enter image description here

为了接收这些数据,我创建了一个类,如下所示:

public class FileName
    {
        public string serverFileName;
        public string fileName;
        public string fileId;
    }

现在我收到的控制器为:

public ActionResult Temp1()
    {
        FileName[] fileName = Request["files"]; //How to convert ?

        return Json(new { Message = "Ok" });
    }

但我在Temp1的第一行收到错误。如何将Json数据解析为FileName

2 个答案:

答案 0 :(得分:0)

您可以使用Json.Net库将json字符串反序列化为abject。 例如:

string json = @"{
  'Name': 'Bad Boys',
  'ReleaseDate': '1995-4-7T00:00:00',
  'Genres': [
    'Action',
    'Comedy'
  ]
}";

Movie m = JsonConvert.DeserializeObject<Movie>(json);

答案 1 :(得分:0)

ASP.NET MVC内部模型绑定器可以为您反序列化JSON字符串。您可以将期望的模型设置为操作/方法中的参数,并查看魔法。

public ActionResult Temp1(FileName[] files)
{
    // work with files

    return Json(new { Message = "Ok" });
}

顺便说一下,最好在模型类中使用属​​性 - https://softwareengineering.stackexchange.com/questions/161303/is-it-bad-practice-to-use-public-fields

public class FileName
{
    public string ServerFileName { get; set; }

    public string FileName { get; set; }

    public string FileId { get; set; }
}