asp.net mvc - MVC Inner Join via Linq -
i try create product detail (accommodation details) view based on controller action:
public actionresult detail(int id) { var detail = cities in _db.cities join properties in _db.properties on cities.cityid equals properties.cityid join proplocations in _db.proplocations on properties.locationid equals proplocations.locationid join proptypes in _db.proptypes on properties.typeid equals proptypes.typeid properties.propid == id select new { cities.cityname, proptypes.proptype1, proplocations.location, properties.propname, properties.propowner, properties.propstars, properties.propaddress, properties.propdescription, properties.maxguests, properties.propconditions, properties.propid }; return view(detail.firstordefault()); }
and because first time try create don't know how solve scaffolding template model .. get
server error in '/' application. model item passed dictionary of type '<>f__anonymoustype5`11[system.string,system.string,system.string,system.string,system.string,system.int32,system.string,system.string,system.int32,system.string,system.int32]', dictionary requires model item of type 'accomm2.models.property'.
my model here:
my autogen view:
@model accomm2.models.property
@{ viewbag.title = "detail"; }
detail
property<div class="display-label">cityid</div> <div class="display-field">@model.cityid</div> <div class="display-label">typeid</div> <div class="display-field">@model.typeid</div> <div class="display-label">locationid</div> <div class="display-field">@model.locationid</div> <div class="display-label">propname</div> <div class="display-field">@model.propname</div> <div class="display-label">propowner</div> <div class="display-field">@model.propowner</div> <div class="display-label">propstars</div> <div class="display-field">@model.propstars</div> <div class="display-label">propaddress</div> <div class="display-field">@model.propaddress</div> <div class="display-label">propphone</div> <div class="display-field">@model.propphone</div> <div class="display-label">propemail</div> <div class="display-field">@model.propemail</div> <div class="display-label">propwebsite</div> <div class="display-field">@model.propwebsite</div> <div class="display-label">propdescription</div> <div class="display-field">@model.propdescription</div> <div class="display-label">maxguests</div> <div class="display-field">@model.maxguests</div> <div class="display-label">propconditions</div> <div class="display-field">@model.propconditions</div>
the view bound "accomm2.models.property" , "detail" object anonymous object, that's reason getting message.
for quick test can try
var prop = new property {
// fields goes here
}
return view(prop);
this quick stub code, ideally conversion should happen in separate layer.
Comments
Post a Comment