当前位置: 首页 > 面试题库 >

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

叶坚
2023-03-14
问题内容

我正在使用.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。

谢谢


问题答案:

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

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


 类似资料:
  • 问题内容: 我有以下任意JSON对象(字段名称可能会更改)。 -- 我知道我可以像定义具有相同字段名的JSON对象那样定义类,但是我希望控制器接受具有不同字段名的任意JSON对象。 问题答案: 如果您想将自定义JSON对象传递给MVC操作,则可以使用此解决方案,它的工作原理很吸引人。 该解决方案的真正好处是,您不需要为每个参数组合定义一个新类,并且除此之外,您可以轻松地将对象转换为其原始类型。 更

  • 问题内容: 在MVC4中,如何将javascript对象传递给AJAX中的C#控制器?最后,我尝试了一下,但没有成功。 Javascript客户端: C#服务器端方法: 我的参数始终为null。我试图更改contentType,但仍然无法正常工作。我的错误在哪里?我找到了一些帖子,但没有发现我做错了什么。 非常感谢。 问题答案: 确保javascript和C#模型之间的属性名称匹配。在你的问题,你

  • 我正在开发将复杂数据从window.open()传递到MVC Controller action方法参数的javascript功能。我能够通过构建查询字符串并从控制器中的[FromQuery]检索它们来实现它。 但我的问题是,我想将数据作为模型对象传递。在窗户里可以吗。打开() 下面是我的javascript代码 如您所见,我可以在URL中传递数据,但它似乎是公开的。那么,有没有办法传入var u

  • 问题内容: 我的JavaScript中有代码,可以使用ajax发布数据: 在控制器中,我有一个带有签名的方法: 我可以正确地拥有inttype。但是objectType不会为null,但是如果我确实喜欢objectType.prop1,它将抛出错误。如果我将用JSON.stringify JavaScript中的对象类型,则控制器中的objectType将具有字符串值。 是否可以使用像这样的动态数

  • 问题内容: 我正在将一个对象传递给我的控制器,如下所示: 我的控制器将其视为它正在寻找的对象: 我的问题是我只想再传递一个字符串。我知道我可以制作特定于视图的模型,但我想知道是否可以执行以下操作: 我没有运气就尝试了以下方法: 但是复杂对象只是作为null来的。有没有办法我也可以传递对象和字符串? 问题答案: 尝试将字符串项添加到已有的JSON中。不要对其进行字符串化,否则它将发送一个大字符串,您

  • 我的控制器代码: 但不管用。