注意:为了使每次点击搜索按钮时都跳回第一页,BeginForm扩展方法中第三个参数用new RouteValueDictionary{{"id",""}}将页索引路由值指定为空值,否则若当前为第五页,则点击搜索按钮重新搜索后当前页仍然为第五页。
注意:为了使每次点击搜索按钮时都跳回第一页,BeginForm扩展方法中第三个参数用new RouteValueDictionary{{"id",""}}将页索引路由值指定为空值,否则若当前为第五页,则点击搜索按钮重新搜索后当前页仍然为第五页。
| 序号 | 文章标题 | 作者 | 文章来源 |
|---|---|---|---|
| 41 | 吴起婚嫁习俗 | Webdiyer | 吴起热线 |
| 42 | 陕西省吴起县地税局税费收入突破17亿元大关 | 杨涛 | 吴起政府网 |
| 43 | 2012年吴起县人民政府工作报告 | Webdiyer | 吴起政府网 |
| 44 | 吴起:昔日红军长征落脚地 如今退耕还林第一县 | 杨涛 | 吴起热线 |
| 45 | 吴起县2013年春节文化系列活动安排 | 杨涛 | 吴起政府网 |
@model PagedList<article>
@using (Html.BeginForm("Search", ViewContext.RouteData.GetRequiredString("Controller"), new RouteValueDictionary { { "id", "" } }, FormMethod.Get))
{
<div class="well well-sm">
<span>搜索关键字:</span><input type="text" name="kword" value="@Request.QueryString["kword"]" style="width:120px" /><input type="submit" value="搜索(S)" accesskey="S" />
<span>(请输入“吴起”或“吴起县”进行测试)</span>
</div>
}
@Html.Partial("_ArticleTable", Model)
@Html.Pager(Model).Options(o => o.SetPageIndexParameterName("id").SetPagerItemTemplate("{0} "))
@model PagedList<Article>
<table class="table table-bordered table-striped">
<tr>
<th class="nowrap">序号</th>
<th>
@Html.DisplayNameFor(model => model.Title)
</th>
<th>
@Html.DisplayNameFor(model => model.PubDate)
</th>
<th>
@Html.DisplayNameFor(model => model.Author)
</th>
<th>
@Html.DisplayNameFor(model => model.Source)
</th>
</tr>
@{ int i = 0;}
@foreach (var item in Model)
{
<tr>
<td>@(Model.StartItemIndex + i++)</td>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@Html.DisplayFor(modelItem => item.PubDate)
</td>
<td>
@Html.DisplayFor(modelItem => item.Author)
</td>
<td>
@Html.DisplayFor(modelItem => item.Source)
</td>
</tr>
}
</table>
public class Article
{
[Display(Name="文章编号")]
public int ID { get; set; }
[Display(Name="文章标题")]
[MaxLength(200)]
public string Title { get; set; }
[Display(Name = "文章内容")]
public string Content { get; set; }
[Display(Name = "发布日期")]
public DateTime PubDate { get; set; }
[Display(Name = "作者")]
[MaxLength(20)]
public string Author { get; set; }
[Display(Name = "文章来源")]
[MaxLength(20)]
public string Source { get; set; }
}
public ActionResult Search(int id = 1, string kword = null)
{
using (var db = new DataContext())
{
var query = db.Articles.AsQueryable();
if (!string.IsNullOrWhiteSpace(kword))
query = query.Where(a => a.Title.Contains(kword));
var model = query.OrderByDescending(a => a.PubDate).ToPagedList(id, 5);
return View(model);
}
}