【问题标题】:How to build C# object from a FormCollection with complex keys如何从具有复杂键的 FormCollection 构建 C# 对象
【发布时间】:2011-02-20 04:17:38
【问题描述】:

我有一个 javascript 对象 obj,它通过 $.post() 传递给 mvc 操作,如下所示:

var obj = {
    Items: [{ Text: "", Value: { Property1: "", Property2: "" },
            { Text: "", Value: { Property1: "", Property2: "" }]
};
$.post('MyAction', obj, function() {});

动作签名如下所示:

public ActionResult MyAction(FormCollection collection)
{
}

我需要能够从FormCollection 构建一个对象,但是我遇到了一个问题,其中键的格式为:

"Items[0][Text]"
"Items[0][Value][Property1]"
"Items[0][Value][Property2]"
"Items[1][Text]"
"Items[1][Value][Property1]"
"Items[1][Value][Property2]"

我想知道是否有一种干净的方法可以从给定的FormCollection 构建所需的 C# 对象。我知道我可以更改操作方法签名以采用我感兴趣的对象类型,但这会带来它自己的问题。

【问题讨论】:

    标签: c# jquery asp.net-mvc formcollection


    【解决方案1】:

    如果您可以更改 javascript 端以便发送 json 版本的数据,我认为您可以接受一个字符串并自己在控制器中进行 json 反序列化,或者使用模型绑定器来完成给你。

    【讨论】:

    • 谢谢。正如你所建议的,我最终向操作发送了一个 json 字符串,并使用 json.net 编写了一个自定义模型绑定器来反序列化请求。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多