0

サードパーティの支払いプロバイダーにデータを POST する場合、通常、フィールドを表す MVC モデルをシリアル化します。私はこの手法を何度も使用しており、完全に機能しています。

しかし今、私はこの仕様に直面しています: http 投稿パラメータ

フィールド名には角かっこが含まれていることに注意してください。モデル プロパティに完全なフィールド名を含める方法がわかりません。現在、モデルは次のようになっています。

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

これは、コンパイラが配列であると正しく認識しているため、失敗します。プロパティ名に角括弧を含めるにはどうすればよいですか、またはこれを回避する別の方法はありますか?

4

1 に答える 1

0

おそらく、何らかの形式の属性を使用してプロパティをマークアップし、リフレクションを使用して名前を取得できます。ただし、指定した例では、dataオブジェクトはNameValueCollectionキーが文字列の a です。つまり、そうする必要も、プロパティ名を使用する必要さえありません。

次のようなことをする必要があると思います:-

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);
于 2012-10-12T14:00:24.817 に答える