2016-12-24 7 views
0

私はいくつかの検索機能を実装しようとしている基本的なMVCアプリケーションを持っています。データを入力して[検索]をクリックすると、URLは予期したとおりに更新されますが、インデックスページではフィルタリングされた結果ではなくすべての結果が返されます。私は下に自分のコードを持っていて、誰かがなぜこれが当てはまるのかを指摘できるかどうか疑問に思っていましたか?私は、私が過去にしたことによると、私は別の投稿メソッドが必要だとは思わないが、私はまだ新しいので間違っているかもしれない。ありがとう。ASP.NET MVCの検索ボックスが投稿されていない

INDEX.CSHTML:

<p> 
    @Html.ActionLink("Create New Employee", "Create") 
</p> 

<form asp-action="Index" method="get"> 
    <div class="form-actions no-color"> 
     <p> 
      Find by name: <input type="text" name="searchString" value="@ViewBag.CurrentFilter" /> 
      <input type="submit" value="Search" class="btn btn-default" /> | 
      <a asp-action="Index">Back to List</a> 
     </p> 
    </div> 
</form> 

はCONTROLLER:

public ActionResult Index(string searchString) 
{ 
    var person = from p in db.Person 
        select p; 

    ViewBag.CurrentFilter = searchString; 

    if (!String.IsNullOrEmpty(searchString)) 
    { 
     person = person.Where(s => s.LastName.Contains(searchString)); 
           //|| p.FirstName.Contains(searchString)); 
    } 
    return View(db.Person.ToList()); 
} 

検索をクリックしたときに返されるURL:

http://localhost:9999/Person/Index?searchString=smith 

答えて

2

あなたは背中に間違った結果を返すされているのでv IEW者テーブルから戻るまでのすべての行を指示し、表示するので、から最後の行を変更するためにそれを通過している:それはに設定されフィルタリングされた結果を返すよう

return View(person.ToList()); 

:に

return View(db.Person.ToList()); 

ビュー。

+0

感謝のように働いてくれてありがとう!! – AndrewC10

関連する問題