2016-11-26 15 views
0

インデックスページで検索機能を実装しようとしていますが、どうすればいいのかについて頭を下げることはできません。EFと入力ボックスで簡単な検索を行う方法

私は単純な検索をしようとしているので、入力ボックスに数字を入れ、ボタンをクリックすると、そのIDのマッチャーオブジェクトのフォームの下に表示されます。

これまでのところ私は間違っているコントローラメソッドとビュー(これは間違っているかもしれません)を持っています。

<h2>Search</h2> 
@model IEnumerable<class_project.Models.Post> 

@{ 
    var i = 1; 
    foreach (var item in Model) 
    { 
    <tr> 
     <td> 
      @Html.DisplayFor(modelItem => item.Title) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.Content) 
     </td> 
     <td> 

      @Html.ActionLink("Details", "Details", new { id = i }) 
      @{ 
       i++; 
     } 
     </td> 
    </tr> 
     } 
    } 

@using (Html.BeginForm("Search", "Posts", FormMethod.Post)) 
{ <p> 
     @Html.TextBoxFor() 
    </p> 

    <input type="submit" /> 

@Html.Action("Search", "Post") 

コントローラ方法:

public ActionResult Search(int id) 
     { 
      return View(db.Posts.Find(id)); 
     } 

モデル:

public class Post 
    { 

    public int PostId { get; set; } 

    public string Title { get; set; } 

    public string Content { get; set; } 


    public Post(int PostId, string Title, string Content) 
    { 
     this.PostId = PostId; 
     this.Title = Title; 
     this.Content = Content; 
    } 
    public Post() 
    { 
    } 

私は

ジービューは(下の検索部分)、このようになります。私のheaを叩いてこの単純な作業でdをしてください。だから、誰かが私にこれを手伝うことができますか?

+0

私は初めて正しく質問しなかったためです。あなたはそれを削除できますか?ごめんなさい。 –

答えて

1

name属性を使用してinput属性を使用すると、フォームがサーバー側に送信された後にフォームデータを参照する必要があります。

@using (Html.BeginForm("Search", "Posts", FormMethod.Post)) 
{ 
    <p> 
     <input type="number" name="id"/> 
    </p> 
    <input type="submit" /> 
} 
+0

答えをありがとう。どのようにこのボックスの下にオブジェクトを表示するのですか?とても有難い。 –

+0

'Search' ActionResultの結果を表示したいとお考えですか? –

+0

はい、そうですよね –

関連する問題