我想用预测进行搜索。我通过AJAX将数据(对象列表)作为JSON发送给Javascript。
我有这门课程是"课程"来自localhost的名称和链接:
public class SearchQ
{
string name;
string link;
public SearchQ(string a, string b)
{
this.name = a;
this.link = b;
}
public SearchQ() { }
}
我的搜索功能(在控制器中)是:
public ActionResult SearchC(string keyword)
{
List<SearchQ> sq = new List<SearchQ>();
var myItems = from u in cat.Courses select u;
if (!String.IsNullOrEmpty(keyword))
{
myItems = myItems.Where(c => c.Name.Contains(keyword));
foreach (var item in myItems)
{
string x= "/CourseProf/"+item.C_id;
SearchQ s = new SearchQ(item.Name,x);
sq.Add(s);
}
return Json(sq.ToList(), JsonRequestBehavior.AllowGet);
}
else
return Json(new List<string>(), JsonRequestBehavior.AllowGet);
}
我的Javascript:
var quickSearch = function () {
var searchstring = $("#search-bar").val();
var response; // @*'@(model.Url)'*@
$.ajax({
type: "GET",
data: { keyword: searchstring },
url: "/Home/SearchC",
dataType: "json",
success: success_func,
error: console.log("AjaxError")
});
$('#output').html();
};
var success_func = function (data) {
function strInArray(str, strArray) {
for (var i = 0; i < strArray.length; i++) {
var $str1 = strArray[i].name;
var $str2 = strArray[i].link;
if ($str1.match(str) && strArray.length < 5) {
//do something
}
}
}
}
当我运行它时,$str1
和$str2
的值为undefined
!我该如何解决这个问题?
答案 0 :(得分:4)
Csharp课程的成员&#34; SearchQ&#34;不公开。