带方括号的MVC Model属性名称 - 这可能吗?

时间:2012-10-12 13:51:27

标签: asp.net-mvc-3 serialization properties http-post

将数据发布到第三方支付提供商时,我通常会序列化代表字段的MVC模型。我已多次使用这种技术并且工作得很好。

但是现在我面对这个规范: http post parameters

请注意,字段名称包含方括号。我无法弄清楚如何在我的模型属性中包含完整的字段名称,目前模型如下所示:

public string action { get; set; }
public string api_key { get; set; }
public string RetailerUniqueRef { get; set; }
public string InstallationID { get; set; }
public float Price { get; set; }
public string Description { get; set; }
public string Code { get; set; }
public float Deposit { get; set; }
public string SchemeCode { get; set; }

如您所见,属性名称只是字段名称的一部分。如果我像这样添加方括号:

public string identification[api_key] { get; set; }

这失败了,因为编译器非常正确地认为它是一个数组。 如何在属性名称中包含方括号,还是有另一种方法呢?

1 个答案:

答案 0 :(得分:0)

也许您可以使用某种形式的属性来标记您的属性,然后使用反射来获取名称。但是在示例中,您提供的data对象是NameValueCollection,其中键是字符串,这意味着无需执行此操作,甚至不需要使用属性名称。

我怀疑你需要做这样的事情: -

var foo = new Foo();
foo.ApiKey = "SomeRandomApiKeySetByTheProvider";
foo.Code = "ONIF6";

var data = new NameValueCollection();
data.Add("Identification[api_key]", foo.ApiKey);
...
data.Add("Finance[Code]", foo.Code);