2016-11-25 6 views
0

イムを結合MVC WebAPIのモデルは、ヘルプ問題が直面している問題

のビットを必要とする私は、要求にモデルがありWEBAPIで要求を持っている

public HttpResponseMessage Update(MyRequest req) 

class MyRequest{ 
public string UserName {get; set;} 
public CustomEnum Type {get; set;} 
} 

Enum CustomEnum { 
Registered , 
UnRegistered 
} 

問題がある列挙型の値をseding私の要求イムでありますないCustomEnumの一部ではなくWEBAPI自体がマップとしては、それはので、私は、要求が到着していない時に、なぜ私は

のようにそれを自分自身をマップ思った私には見られない

の例外を与える値10

問題はどうですか?このアクセサーを取得するには、いくつかの助けを得ることができます

+0

あなたのコードをさらに表示してください:コントローラー、おそらくモデルバインダー – Marusyk

+0

これはほぼすべてのコードです。更新(MyRequest req)はコントローラにあり、私はpostManを通してリクエストを送信しています.WEBはモデル自体をバインドしています。問題はどこにあるのですか? – Salman

+0

もし私が値を取得できるなら、私の要求クラスのアクセサーを取得してください。 – Salman

答えて

0

私は正しく質問を理解したら、CustomEnum型の値をバインドしようとしていますが、それはenumの値ではありません値は、私が想定するプロパティにバインドすることはできませんが、例外の理由です。

私はあなたの代わりに行うことができると思う、のようなものは何ですか:

class MyRequest{ 
    public string UserName {get; set;} 
    public string Type {get; set;} 
    pulic CustomEnum? TypeAsEnum 
    { 
     get{ 
      CustomEnum value; 
      return Enum.TryParse(typeof(CustomEnum), out value) ? value : (CustomEnum?)null; 
     } 
    } 
} 

その後、私は任意の値は、Typeプロパティにバインド可能であるべきだと思います(それがstringであるため)とあなたがTypeAsEnumプロパティを使用することができますCustomEnum型の値を取得するか、TypeCustomEnum型に変換できない場合はnullを取得します。いずれにしても、Typeプロパティから値のテキスト表現を取得できます。

関連する問題