将对象的列表c#传递给javascript:undefined变量时出错

Error in passing a list c# of object to javascript : undefined variable

本文关键字:javascript undefined 变量 出错 对象 列表      更新时间:2023-09-26

我想用预测进行搜索。我通过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!我该如何解决这个问题?

Csharp类"SearchQ"的成员不是公共的。