ASP.NET MVC - 在搜索结果中突出显示搜索词

Cal*_*ass 1 asp.net-mvc-3

是否可以在返回的搜索结果中突出显示搜索词?例如:

我的[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);
    }
Run Code Online (Sandbox Code Playgroud)

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;
    }
Run Code Online (Sandbox Code Playgroud)

_ProductResult 部分视图:

@foreach (var item in Model)
{
   <p>@item.ITEMID</p>
}
Run Code Online (Sandbox Code Playgroud)

当我使用 a 时,StartsWith我想在搜索结果中突出显示搜索词。例如,如果我搜索“123”并返回 2 个结果。我希望它返回如下内容:

**123**456

**123**45678
Run Code Online (Sandbox Code Playgroud)

或者使用具有类的跨度包装搜索词,如下所示:

<span class="highlighted">123</span>456

<span class="highlighted">123</span>45678
Run Code Online (Sandbox Code Playgroud)

然后这个类将有一个 CSS 规则集,例如将颜色设置为黄色。

这可能吗?

doh*_*ivu 5

您可以将“ID”传递给局部视图,然后将其替换

public ActionResult ProductResult(string id)
{
    var products = client.ProductSearch(id);
    ViewData["ID"] = id;
    return PartialView("_ProductResult", products);
}
Run Code Online (Sandbox Code Playgroud)

在 _ProductResult 部分视图中,

@foreach (var item in Model)
{
    <p>@Html.Raw(@item.ITEMID.Replace((string)ViewData["ID"], "<span class='highlighted'>" + (string)ViewData["ID"] + "</span>")) </p>
}
Run Code Online (Sandbox Code Playgroud)