2017-12-07 7 views
0

こんにちは私はどのように私は私のデータベースを介してテキストボックスにすべてのタイトルで少なくとも1つの文字を置くことによって検索することができます自分のコードを改善することができます。今は検索していますが、何かを検索するためにタイトル全体を入れる必要があります。MVC:ビデオの名前で検索

マイ検索バー:

@using (Html.BeginForm("SearchVideo", "Video", FormMethod.Post, new { @class = "navbar-form navbar-left", @role = "search" })) 
        { 
         <div class="form-group"> 
          @Html.TextBox("searchVideo", (object)null, new { @class = "form-control", @placeholder = "Wyszukaj film" }) 
         </div> 
         <button class="btn btn-default" type="submit"><i class="glyphicon glyphicon-search"></i></button> 
        } 

私の方法:

[HttpPost] 
public ActionResult SearchVideo(string searchVideo) 
{ 
    var model = new VideoListViewModel(); 
    model.VideoList = repo.SearchVideo(searchVideo).ToList(); 

    return View("Search", model); 
} 

マイVideoListViewModel:

public class VideoListViewModel 
{ 
    public IEnumerable<Video> VideoList { get; set; } 
} 

マイサーチビュー:

<div class="list-group"> 
     @foreach (var video in Model.VideoList) 
     { 
      <a href="/Video/[email protected]" class="list-group-item clearfix"> 
       <img src="~/Images/@video.ImageUrl" style="width: 80px; height: 100px; padding: 5px;" /> 
       Premiera: @video.Date 
       <br/> 
       @video.VideoName 
      </a> 
      <br/> 
     } 
    </div> 
01リポジトリ内

私の方法は:

public IEnumerable<Video> SearchVideo(string search) 
{ 
    try 
    { 
     ECinemaDBEntities db = new ECinemaDBEntities(); 

     return db.Video.Where(x => x.VideoName == search); 
    } 
    catch (Exception) 
    { 
     throw; 
    } 
} 
+0

正確にはどのような問題がありますか? – Jasen

+0

タイトルの一部ではなく、全タイトルを検索する必要があります。 – mariie

+0

タイトルの断片を検索できるようにしたいですか? – Jasen

答えて

1

あなたは

return db.Video.Where(x => x.VideoName.Contains(search)); 

は、文字列が他の文字列にどこでも存在する場合trueを返すメソッドが含まれていますあなたのwhere句内のContainsメソッドを使用することができます。 VideoNameが検索パラメータの値で始まるレコードを取得する場合は、StartsWithメソッドを使用できます。

return db.Video.Where(x => x.VideoName.StartsWith(search));