2017-03-21 17 views
0

まず、データベースからTripIdを照会するために、必要な値としてURL {id}を使用する方法によって、データベースから行を取得する方法を知る必要があります。一度私はそれをビューに渡す必要があります。コントローラでデータを取得してビューに渡すにはどうすればいいですか?

私のコントローラでは、私は私の視点で表示することができるかどうかを見るためにtripid値 '1'を探していました。しかし、私はそれがより複雑なクエリを持っていることを期待しています

何か助けに感謝します!

これは、これは私のモデル

public class Trips 
{ 
    [Key] 
    [DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity)] 
    public int TripId { get; set; } 

    public string Country { get; set; } 

    public string City { get; set; } 

    public string Description { get; set; } 

    public int Price { get; set; } 

    public DateTime Date { get; set; } 

    public int CoachId { get; set; } 

} 

}

そして最後に図であるコントローラ

public class TripsController : Controller 
{ 
    private ApplicationDbContext _db = new ApplicationDbContext(); 

    ActionResult View(int id) 
    { 
     using (ApplicationDbContext _db = new ApplicationDbContext()) 
     { 

      var trip = (from Trips in _db.Trips 
         where Trips.TripId.Equals('1') 
         select Trips.TripId); 
      if (trip == null) 
      { 
       return HttpNotFound(); 
      } else 
      { 
       /// Code to display page? 
      } 

     } 
    } 
} 

..です

@model _MVCCoachTravelling.Models.Trips 
@{ 
ViewBag.Title = "View"; 

} 

<div class="main-container"> 

<div class="row"> 

     <img class="img-responsive" src="http://placehold.it/800x300" alt=""> 
      <div class="caption-full"> 
       <h4 class="pull-right">£@Html.DisplayFor(model => model.Price)</h4> 
       <h4> 
        @Html.DisplayFor(model => model.City) 
       </h4> 
       <p>@Html.DisplayFor(model => model.Description)</p> 

       </div> 

答えて

2

クエリを使用すると、int型

where Trips.TripId.Equals('1') 

に文字を比較しているので、それはあなたが代わりにあなたの旅行を得れば、それは今return View(trip)ある

where Trips.TripId == 1 

を比較する必要がありますです失敗した場合。

pubic ActionResult ViewTrip(int id) 
{ 
    using (ApplicationDbContext db = new ApplicationDbContext()) 
    { 
     var query = from t in db.Trips 
        where t.TripId == id 
        select t; 

     var trip = query.FirstOrDefault(); 

     if (trip == null) { /* fail */ } 

     return View(trip); 
    } 
} 
+0

ありがとうございました。私の問題は文字通り解決しました。 – BakedPanda

+0

あなたの質問に解決策を記入するための記者! – Webbanditten

+0

おしゃべりはそれについて知らなかった!完了しました。 – BakedPanda

0

あなたが簡単に試すことができます。

ActionResult View(int id) 
{ 
    using (ApplicationDbContext _db = new ApplicationDbContext()) 
    { 
     var trip = (from Trips in _db.Trips where Trips.TripId.Equals('1') select Trips.TripId); 

     if (trip == null) 
      return HttpNotFound(); 

     return View() 
    } 
} 

ビューがコントローラとモデルに正しくマップされている。

関連する問題