【发布时间】:2013-10-22 10:13:38
【问题描述】:
我已经在 partialView 中搜索了部分列表。
您可以从图片中看到,我在此应用程序中有多个 partialView。
所以我的问题
每当我为网格创建搜索过滤器时,我都必须创建另一个视图和部分视图以显示成功结果。如何在同一个局部视图中显示过滤后的搜索列表,而无需再次为该列表创建成功的局部视图?
我已经完成了-
来自数据库的渲染列表-
public ActionResult _ProductSearchList() {
List<ProductModel> product;
product = (from u in db.ProductTables
select new ProductModel {
productname = u.ProductName,
productprice = Convert.ToInt32(u.ProductPrice),
productID = u.ProductID,
dateaddproduct = Convert.ToDateTime(u.ProductAddDate)
}).ToList();
return PartialView(product);
}
搜索记录-
<div>
<legend>Prducts</legend>
<input type="text" id="search-products" />
@Html.Action("_ProductSearchList", "LedgerIndex")
</div>
检索记录的脚本-
<script type="text/javascript">
$(function () {
$('#search-products').keyup(function () {
var serachstring = $(this).val();
$.ajax({
url: '/Product/JsonSearchProduct/?stringSearched=' + serachstring,
type: 'get',
datatype: 'json',
success: function (data) {
JSON.stringify(data);
}
});
});
});
</script>
控制器中的Json结果-
public JsonResult JsonSearchProduct(string stringSearched) {
List<ProductModel> product;
product = (from u in db.ProductTables
where u.ProductName.Contains(stringSearched)
select new ProductModel {
productID = u.ProductID,
productname = u.ProductName,
productprice = Convert.ToInt32(u.ProductPrice),
dateaddproduct = Convert.ToDateTime(u.ProductAddDate)
}).ToList();
return Json(product, JsonRequestBehavior.AllowGet);
}
因此,当我搜索字符串 M 时,它会检索记录并仅显示名称中包含 M 的记录。
现在这个过滤结果为JSON 是我想在同一个部分视图中过滤的结果,而不创建额外的部分视图。
【问题讨论】:
-
你不能简单地用额外的搜索词重新查询控制器吗?例如,第一次搜索“M”,第二次搜索“Ma”
标签: c# asp.net-mvc json asp.net-mvc-4 search