JQuery 显示字符串列表 .NET MVC

JQuery display list of strings .NET MVC

在下面的代码中,我试图通过 JQuery Ajax 和 .NET 框架获取字符串列表,并在 UI:

中正确显示

JQuery代码:

   $.get("/TargetGroups/GetExistingJobTitles")
        .done(function (data) {
            //code to display properties??
        });

C#代码:

[HttpGet]
public IEnumerable<string> GetExistingJobTitles()
{
    var foundData = _targetGroupsRepo.GetJobTitles();
    return foundData;
}

确实在调试时,我得到了一个字符串列表。据我所知,JQuery 如何扩展返回的列表并将其显示在 UI 比方说在 ul.

欢迎任何帮助!

您的 JavaScript/jQuery 代码在两个不同的系统上 运行。讨论数据如何从一个系统传递到另一个系统是一个广泛的话题,显然您对此不感兴趣。这是我为使您了解您需要了解的事实所做的一点努力:

从任何服务器端应用程序,无论是否是 C# .Net,数据都以字节形式发送。当 client/browser 端的 JS 代码收到该代码时,它会根据 MIME 类型对其进行处理和操作。在您的情况下:您的应用程序将 return 纯文本数据(字符串)发送到浏览器,JS 代码将按照您编码的方式解释或执行。这取决于你如何处理它。

明文数据在JS环境下也是string。现在,您需要将接收到的数据解析为您想要的格式。首选方法是将数据从 Web 应用程序发送到浏览器或 javascript 环境作为 JSON 并调用 json 解析方法以获取所需格式的数据。所以,如果你想像在你的网络应用程序中那样接收数组,那么从中创建一个 json 字符串,或者让你的框架这样做。在接收方解析 json 并遍历数组以创建一个 HTML 列表。

让我知道这是否足以让您理解。

控制器代码

[HttpGet]
public JsonResult GetExistingJobTitles()
{
var foundData = _targetGroupsRepo.GetJobTitles();
return Json(foundData,JsonRequestBehavior.AllowGet);
}

Jquery

$.get("@Url.Action("GetExistingJobTitles")")
.done(function (data) {
var ulJobTitles = $("#ulJobTitles");
$.each(data, function () {
ulJobTitles.append($("<li></li>").text(this))
}
});

Jquery 代码应该与实际方法一起工作,我只是喜欢使用 JSON。

如果你想传递一个对象而不是字符串

这是当 foundData 是对象列表时的代码

[HttpGet]
public JsonResult GetExistingJobTitles()
{
var foundData = _targetGroupsRepo.GetJobTitles();
var returnObj = foundData.Select(x => new
{
value = x.Id,
text = x.Name
}).ToList();
return Json(returnObj ,JsonRequestBehavior.AllowGet);
}

Jquery

$.get("@Url.Action("GetExistingJobTitles")")
.done(function (data) {
var selectJobTitles = $("#ulJobTitles");
$.each(data, function () {
selectJobTitles.append($("<option></option>").attr("value", 
this[value]).text(this[text]))
}
});