2012-10-12 49 views
0

将数据发布到第三方支付提供商时,通常会序列化表示字段的MVC模型。我已经多次使用过这种技术,并且工作完美。带方括号的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; } 

由于编译器完全正确地认为它是数组,因此失败。 如何在属性名称中包含方括号,或者是否有其他方法?

回答

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);