私たちのシステムには、コードと名前を持つ一連の既知の「契約タイプ」があります。
public struct ContractType {
public string Code { get; set; }
public string Name { get; set; }
}
このようなメソッドを持つ MVC コントローラーがあります。
[HttpGet]
public ActionResult Search(SearchOptions options) {
// returns search results
}
SearchOptions
多くのパラメータが含まれています (の配列を含むContractType
)
public class SearchOptions {
public ContractTypes[] Contracts { get; set; }
// other properties
}
SearchOptions
asp.net MVC でコントラクト タイプ コードをモデルのコントラクト タイプの配列に自動的に変換したいと考えています。たとえば、MVC モデル バインダーに次のようなクエリ文字列を取得させたい...
http://abc.com/search?contracts=ABC&contracts=XYZ&foo=bar
SearchOptions
次のデータ構造のようになるように入力します
{
Contracts : [
{ Code : "ABC", Name: "ABC Contract Name" },
{ Code : "XYZ", Name: "XYZ Contract Name" }
],
// other properties
}
コントラクト タイプ コードを受け取り、適切な ContractType を返すメソッドを使用できます。
public ContractType GetContractTypeByCode(string code) {
// code which returns a ContractType
}
カスタム モデル バインダーを使用する必要があるのか、値プロバイダーを使用する必要があるのかはっきりしません。どんな助けでも大歓迎です。