在 MVC 中使用 jquery 突出显示搜索词
highlight search word using jquery in MVC
我有 MVC 控制器,returns 一个包含搜索字符串的列表。
public ActionResult GetList(string searchString)
{
ViewData["searchString"] = searchString;
if (String.IsNullOrEmpty(searchString))
{
var persons = db.Persons.ToList();
return View(persons);
}
else{
var persons = db.Persons.Where(p=> p.Title.Contains(searchString)).ToList();
return View(persons);
}
}
在视图中列表显示在 table 中。我想突出显示 searchString(或至多包含 searchString 的 td)。以下是我的 jquery 我试图实现这一目标的地方。我曾尝试将这段代码放在单独的 .js 脚本或视图本身中,我还尝试以多种方式更改代码,但它不起作用。即使我的 ViewData 的内容已更改,searchString 似乎仍然为空。
$(document).ready(function () {
var textToHighligt = @ViewData["searchString"];
$("#simpleSearchButton").click(function () {
$("td:contains(textToHighligt)").css("background-color", "yellow");
});
});
我认为:
var textToHighligt = @ViewData["searchString"];
$("td:contains(textToHighligt)").css("background-color", "yellow");
应串联:
var textToHighligt = '@ViewData["searchString"]'; //<---put in quotes
$("td:contains("+textToHighligt+")").css("background-color", "yellow");
如果 javascript 文件中没有发生这种情况,我认为您可以采取其他方式,创建一个隐藏字段并填充 ViewBag
中的值
@Html.Hidden("hiddensearchString", (string)ViewBag.searchString)
对于视图数据
@Html.Hidden("FirstName", ViewData["searchString"])
然后 javascript 读取这样的值
var searchString = $("#hiddensearchString").val();
在您的代码中,您也可以尝试使用单引号。
var textToHighligt = '@ViewData["searchString"]';
我有 MVC 控制器,returns 一个包含搜索字符串的列表。
public ActionResult GetList(string searchString)
{
ViewData["searchString"] = searchString;
if (String.IsNullOrEmpty(searchString))
{
var persons = db.Persons.ToList();
return View(persons);
}
else{
var persons = db.Persons.Where(p=> p.Title.Contains(searchString)).ToList();
return View(persons);
}
}
在视图中列表显示在 table 中。我想突出显示 searchString(或至多包含 searchString 的 td)。以下是我的 jquery 我试图实现这一目标的地方。我曾尝试将这段代码放在单独的 .js 脚本或视图本身中,我还尝试以多种方式更改代码,但它不起作用。即使我的 ViewData 的内容已更改,searchString 似乎仍然为空。
$(document).ready(function () {
var textToHighligt = @ViewData["searchString"];
$("#simpleSearchButton").click(function () {
$("td:contains(textToHighligt)").css("background-color", "yellow");
});
});
我认为:
var textToHighligt = @ViewData["searchString"];
$("td:contains(textToHighligt)").css("background-color", "yellow");
应串联:
var textToHighligt = '@ViewData["searchString"]'; //<---put in quotes
$("td:contains("+textToHighligt+")").css("background-color", "yellow");
如果 javascript 文件中没有发生这种情况,我认为您可以采取其他方式,创建一个隐藏字段并填充 ViewBag
中的值 @Html.Hidden("hiddensearchString", (string)ViewBag.searchString)
对于视图数据
@Html.Hidden("FirstName", ViewData["searchString"])
然后 javascript 读取这样的值
var searchString = $("#hiddensearchString").val();
在您的代码中,您也可以尝试使用单引号。
var textToHighligt = '@ViewData["searchString"]';