JQuery显示字符串.NET MVC的列表

时间:2017-10-19 10:14:26

标签: javascript c# jquery .net petapoco

在下面的代码中,我试图通过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。

欢迎任何帮助!

2 个答案:

答案 0 :(得分:2)

控制器代码

[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]))
}
});

答案 1 :(得分:1)

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

从任何服务器端应用程序,无论是否是C#.Net,数据都以字节形式发送。当客户端/浏览器端的JS代码接收到该代码时,它会根据MIME类型对其进行处理并对其进行操作。在您的情况下:您的应用程序将返回纯文本数据(String)到浏览器,JS代码将根据您编码的方式解释或采取行动。它取决于你对此的所作所为。

纯文本数据在JS环境中也是字符串。现在,您需要将收到的数据解析为所需的格式。首选方法是将数据从Web应用程序作为JSON发送到浏览器或javascript环境,并调用json解析方法以获得所需形式的数据。因此,如果您希望在Web应用程序中接收数组,则从中创建一个json字符串,或让您的框架执行此操作。在接收端解析json并在数组上循环以创建HTML列表。

如果这足以让您理解,请告诉我。