[datacontract] public class searchcriteria { [datamember] public string countryid { get; set; } } [datacontract] public class citysearchcriteria: searchcriteria { [datamember] public string cityid { get; set; } }
i creating instance of searchcriteria in mvc controller action, , trying convert citysearchcriteria.
searchcriteria searchcriteria = new searchcriteria(); searchcriteria.countryid = "1"; citysearchcriteria citysearchcriteria = searchcriteria citysearchcriteria;
the "citysearchcriteria" object after above statement showing null value. expecting show both properties, countryid , cityid countryid populated, , cityid blank... setting object null.
what solution here? has datacontract this?
the comments suggesting, cannot convert base derive: actually, have done in view, not working in controller action:
citysearchcriteria citysearchcriteria = (citysearchcriteria)model.searchcriteria;
this converting successfully, why not similar thing working in controller action?
everybody has (and correctly) told you can't cast base derived, seems me still don't reason why line works in chunk of code:
citysearchcriteria citysearchcriteria = (citysearchcriteria)model.searchcriteria;
i think little bit confused "type" of instance is. didn't post definition of model, think have this:
public searchcriteria searchcriteria;
this doesn't mean searchcriteria contains instances of searchcriteria, contains instances of types can cast searchcriteria. in case can contain instances of searchcriteria or of citysearchcriteria. suppose somewhere in code find like:
model.searchcriteria = new citysearchcriteria();
and allows yor cast executed correctly. can see instance indeed citysearchcriteria (and not instance of searchcriteria) executing code before cast:
messagebox.show(model.searchcriteria.gettype().fullname;
to understand better try modify value in searchcriteria before working cast shown below find out cast won't work anymore:
model.searchcriteria = new searchcriteria(); messagebox.show(model.searchcriteria.gettype().fullname; citysearchcriteria citysearchcriteria = (citysearchcriteria)model.searchcriteria;
Comments
Post a Comment