一尘不染

将动态json对象传递给C#MVC控制器

json

我正在使用.Net 4,MVC 3和jQuery v1.5做一些工作

我有一个JSON对象,它可以根据调用它的页面而改变。我想将对象传递给控制器​​。

{ id: 1, title: "Some text", category: "test" }

我了解如果我创建一个自定义模型,例如

[Serializable]
public class myObject
{
    public int id { get; set; }
    public string title { get; set; }
    public string category { get; set; }
}

并在我的控制器中使用它,例如

public void DoSomething(myObject data)
{
    // do something
}

并使用jQuery的.ajax方法传递对象,如下所示:

$.ajax({ 
    type: "POST", 
    url: "/controller/method", 
    myjsonobject,  
    dataType: "json", 
    traditional: true
});

这工作正常,我的JSON对象已映射到我的C#对象。我想做的是通过一个可能更改的JSON对象。当它更改时,我不需要每次JSON对象更改时都向我的C#模型中添加项目。

这实际上可行吗?我尝试将对象映射到Dictionary,但是数据的值最终将为null。

谢谢


阅读 300

收藏
2020-07-27

共1个答案

一尘不染

大概接受输入的操作仅用于此特定目的,因此您可以只使用该FormCollection对象,然后将该对象的所有json属性添加到字符串集合中。

[HttpPost]
public JsonResult JsonAction(FormCollection collection)
{
    string id = collection["id"];
    return this.Json(null);
}
2020-07-27