javascript - 将对象列表 c# 传递给 javascript 时出错 : undefined variable

标签 javascript c# jquery ajax

我想通过预测进行搜索。我通过 AJAX 将数据(对象列表)作为 JSON 发送到 Javascript。

我有这个类,它是来自本地主机的“类(class)”名称和链接:

 public class SearchQ
{
    string name;
    string link;


    public SearchQ(string a, string b)
    {
        this.name = a;
        this.link = b;

    }
    public SearchQ() { }
}

我的搜索功能(在 Controller 中)是:

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$str2undefined !我该如何解决这个问题?

最佳答案

Csharp 类“SearchQ”的成员不是公开的。

关于javascript - 将对象列表 c# 传递给 javascript 时出错 : undefined variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29477996/

相关文章:

javascript - 以模态形式弹出窗口显示日历

c# - 如何将 Windows 服务中的参数从 Installer 传递到 Program.cs 中的 Main 函数?

c# - 我应该使用 Singleton 还是 Scoped 服务在 ASP.NET Core 中进行 api 调用?

javascript - 未捕获的类型错误 : Cannot read property 'name' of undefined

javascript - 如果我选择第一个复选框然后禁用所有剩余的复选框

jquery - 使用链接打开 jQuery Accordion 面板(在 Accordion 之外)

javascript - jQuery 字符串替换匹配的正则表达式

javascript - toLocaleLowerCase() 和 toLowerCase() 的区别

javascript - 两次单击同一按钮上的两个事件

c# - 为什么 id 在某些默认 MVC 操作上可以为空?