为什么不为此使用查询字符串?例如,使用属性设置为“get”的<form />
元素提交搜索请求。method
在这种情况下,您只需从查询字符串中读取即可轻松恢复表单状态,代码会简单得多。访问者还可以轻松地为页面添加书签并稍后返回搜索结果。
看法:
@model SearchResultSet;
<form method="get" action="/search">
<input type="text" name="q" value="@Request.QueryString["q"]" />
<input type="submit" value="Search" />
</form>
@if (Model.Total > 0)
{
<ul>
@foreach (var result in Model.Results)
{
<li>...</li>
}
</ul>
}
型号和控制器:
public class SearchResultSet
{
public IList<SearchResult> Results { get; set; }
public long Total { get; set; }
}
public class SearchController : Controller
{
public ActionResult Index(string q = "")
{
return View(GetModel(q));
}
private SearchResultSet GetModel(string searchQuery)
{
// Get search results
}
}
希望这可以帮助。