如何使用EF和输入框进行简单搜索

时间:2016-11-26 10:20:42

标签: c# asp.net-mvc entity-framework

我正在尝试在我的索引页面上实现搜索功能,但我无法理解它应该如何。

我只是想做一个简单的搜索,所以我在输入框中输入一个数字,然后在按钮上单击我在表格下面显示匹配该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()
    {
    }

我正在用这个简单的任务敲打我的头,所以,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

在将表单提交到服务器端后,您必须使用input使用name属性来引用表单数据。

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