0

我正在构建一个 MVC 远程共享点应用程序并编写了将 ListItemCollection 导出为 JSON 的代码,而无需知道字段名称。如何对作为表单数据从视图传递到控制器的自定义模型执行相同的操作?这是 JSON 导出代码的片段,它显示了我想要做的事情

foreach (ListItem oListItem in IndListItem)
{
    int fcount =oListItem.FieldValues.Keys.Count;
    for (int j = 0; j < fcount; j++)
    {                    
        fname= oListItem.FieldValues.Keys.ElementAt(j);
        fval = HttpUtility.HtmlEncode(oListItem.FieldValues[fname].ToString());
    }
    json += '"' + fname + '"' + ":" + '"' + fval + '"' + ",";
}

我想实现类似的东西

sp.ListItem oListItem = list.GetItemById(id);
foreach (xField in formdata)
{
    oListItem[xField] = formdata.getField(xField).ToString();
}

提前致谢

4

1 回答 1

0

您不必自己生成 JSON。你有几个选择:

在您的 MVC 操作中,返回一个 JsonResult。

public ActionResult MyListAsJson() { 
   /* get list */
   return Json(IndListItem);
}

使用JavascriptSerializer

var serializer = new JavascriptSerialzer();
var json = serializer.Serialize(IndListItem);

其他常见的替代品包括DataContractJsonSerializerJson.NET

于 2012-08-22T10:17:06.627 回答