是否可以在返回的搜索结果中突出显示搜索字词?例如:
我的[HttpPost]
行动:
public ActionResult ProductSearchForm(Product product)
{
return RedirectToAction("ProductResult", new { id = product.ITEMID });
}
public ActionResult ProductResult(string id)
{
var products = client.ProductSearch(id);
return PartialView("_ProductResult", products);
}
client.ProductSearch方法(这是一个Web服务,但这无关紧要):
public List<string> ProductSearch(string id)
{
List<string> products = context.Products.
Where(x => x.ITEMID.StartsWith(id)).Select(x=>x.ITEMID).ToList();
return products;
}
_ProductResult Partial View:
@foreach (var item in Model)
{
<p>@item.ITEMID</p>
}
当我使用StartsWith
时,我想在搜索结果中突出显示搜索字词。例如,如果我搜索'123'并返回2结果。我想要它返回类似的东西:
**123**456
**123**45678
或者使用具有类的跨度包装搜索词,如下所示:
<span class="highlighted">123</span>456
<span class="highlighted">123</span>45678
然后这个类将有一个CSS规则集,例如,它将颜色设置为黄色。
这可能吗?
答案 0 :(得分:4)
您可以将“ID”传递给部分视图,然后替换它
public ActionResult ProductResult(string id)
{
var products = client.ProductSearch(id);
ViewData["ID"] = id;
return PartialView("_ProductResult", products);
}
在_ProductResult Partial View中,
@foreach (var item in Model)
{
<p>@Html.Raw(@item.ITEMID.Replace((string)ViewData["ID"], "<span class='highlighted'>" + (string)ViewData["ID"] + "</span>")) </p>
}