[DataContract]
public class SearchCriteria
{
[DataMember]
public string CountryID { get; set; }
}
[DataContract]
public class CitySearchCriteria: SearchCriteria
{
[DataMember]
public string CityID { get; set; }
}
MVC コントローラー アクションで SearchCriteria のインスタンスを作成し、それを CitySearchCriteria に変換しようとしています。
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.CountryID = "1";
CitySearchCriteria citySearchCriteria = searchCriteria as CitySearchCriteria;
上記のステートメントの後の「citySearchCriteria」オブジェクトは NULL 値を示しています。CountryID が入力された CountryID と CityID の両方のプロパティと、CityID が空白のプロパティが表示されることを期待していましたが、オブジェクトが NULL に設定されています。
ここで解決策は何ですか?DataContract はこれで何かを行う必要がありますか?
コメントは、ベースを派生に変換できないことを示唆しています:しかし、実際には、私の見解ではこれを成功させましたが、コントローラーアクションでは機能していません:
CitySearchCriteria citySearchCriteria = (CitySearchCriteria)Model.SearchCriteria;
これは正常に変換されているのに、コントローラーのアクションで同様のことが機能しないのはなぜですか?