2011-02-07 37 views
0

你好,我有這個控制器(可能是我聽錯了)MVC內連接的LINQ(begginner問題)

public ActionResult Detail(int id) 
{ 

    var detail = from 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 
       where 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()); 

} 

這EDMX: model

可能有人解釋我請如何讓細節的財產視圖?我嘗試了不同的組合,但由於我在該領域的經驗不足(這是我的第一次嘗試),沒有任何工作。

請幫我做這個觀點工作 謝謝

回答

2

你可以把它換成所有的標記代碼Html.DisplayForModel():)

如需進一步參考,請檢查this

此外,你爲什麼要使用所有這些連接?您可以使用導航屬性來訪問相關的表格/實體。

1

剛剛找到最後的答案:

@model accomm2.Models.Property 

@{ 
    ViewBag.Title = "Detail"; 
} 

<h2>Detail</h2> 

<fieldset> 
    <legend>Property</legend> 

    <div class="display-label">CityId</div> 
    <div class="display-field">@Model.City.CityName</div> 

    <div class="display-label">TypeId</div> 
    <div class="display-field">@Model.PropType.PropType1</div> 

    <div class="display-label">LocationId</div> 
    <div class="display-field">@Model.PropLocation.Location</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> 
</fieldset> 
<p> 
    @Html.ActionLink("Edit", "Edit", new { id=Model.PropId }) | 
    @Html.ActionLink("Back to List", "Index") 
</p>