我正在尝试在我的索引页面上实现搜索功能,但我无法理解它应该如何。
我只是想做一个简单的搜索,所以我在输入框中输入一个数字,然后在按钮上单击我在表格下面显示匹配该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()
{
}
我正在用这个简单的任务敲打我的头,所以,有人可以帮助我吗?
答案 0 :(得分:1)
在将表单提交到服务器端后,您必须使用input
使用name
属性来引用表单数据。
@using (Html.BeginForm("Search", "Posts", FormMethod.Post))
{
<p>
<input type="number" name="id"/>
</p>
<input type="submit" />
}