控制器:
// other usings are removed for the sake of brevity
using MvcMovie.Models;
namespace MvcMovie.Controllers
{
public class MoviesController : Controller
{
private MoviewDBContext db = new MoviewDBContext();
public ActionResult SearchIndex(string searchString)
{
var movies = db.Movies.Select(x => x);
if (!string.IsNullOrEmpty(searchString))
movies = movies.Where(x => x.Title.Contains(searchString));
return View(movies);
}
}
}
看法:
// SearhcIndex.cshtml
@model IEnumerable<MvcMovie.Models.Movie>
@using (Html.BeginForm())
{
<p>
Title: @Html.TextBox("searchString")
<br />
<input type="submit" value="Filter" />
</p>
}
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model.Title)
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
</tr>
}
</table>
我第一次访问时localhost/Movies/SearchIndex
,HttpGet SearchIndex
将调用 并填充相应视图的模型。在浏览器上呈现视图后,我输入一个单词以过滤掉列表,然后按下提交按钮Filter
。
我的问题是:
Filter
在我看来,单击将提交带有 POST 动词的表单。但是为什么会再次HttpGet SearchIndex
调用呢?我还没有实施(当然)。HttpPost SearchIndex
注意:我是新手,请不要在没有给出我可以学习的理由的情况下投反对票。我正在阅读本教程“检查编辑方法和编辑视图”。