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

时间:2015-04-06 19:15:15

标签: javascript c# jquery ajax

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

1 个答案:

答案 0 :(得分:4)

Csharp课程的成员&#34; SearchQ&#34;不公开。