我有一个索引视图(列表),已向其中添加了分页功能,并且效果很好。我还有其他视图(列表),它们都有一个html搜索框,该搜索框将值传递回控制器,并且效果也很好。但是,当我尝试将两者都放在同一观点时。 。我收到空引用错误。
错误消息 值不能为空。 参数名称:值
这是生成错误的行:
var catalogs = supplies.Where(s => s.ItemDescription.Contains(searchString));
这是索引视图上的asp / html搜索框
form asp-controller="Movies" asp-action="Index">
<p>
Search Catalog Files: <input type="text" name="SearchString">
<input type="submit" value="Filter" />
</p>
这是我的具有分页和searchString的索引控制器
public ActionResult Index(string searchString)
{
var supplies = db.ICS_Supplies.OrderByDescending(g => g.Supplies_ID).ToList();
var catalogs = supplies.Where(s => s.ItemDescription.Contains(searchString));
var model = new PagedList<ICS_Supplies>(catalogs, 1, 10);
if (!String.IsNullOrEmpty(searchString))
{
catalogs = catalogs.Where(s => s.ItemDescription.Contains(searchString));
}
return View(model);
}
这与异步有关系吗?我需要使用以下内容吗?
public async Task<ActionResult> Index(string searchString)
还是我的东西顺序错误?如果SearchString文本框中包含文本,则该页面可以正常工作。 。但是当页面尝试首次加载时,它会失败。
有指针吗?
答案 0 :(得分:2)
您可以在执行前检查searchString是否为空
var catalogs = supplies.Where(s => s.ItemDescription.Contains(searchString ?? string.Empty));