2011-02-07 15 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を持っているに参加しますプロパティビューの?私は差の組み合わせを試みたが、フィールドで私の低い経験のため(これは私の最初の試行です)何も働いた。

答えて

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>