1

我在使用.net MVC的网站上工作。

在我的主页上,我有一些区域可以列出客户的一些统计数据。
由于这些值经常变化,我需要从服务器轮询数据,并且我计划在一段时间后连续 使用AJAX请求来服务器。

我的问题是:是否可以发送客户端对象列表作为对 ajax 请求的响应。
我有一个班级Client,我正在寻找是否可以List<Client>作为回复发送)

任何人都可以给我提供指南或一些示例链接。

4

3 回答 3

3

您需要在控制器中创建一个 JsonResult 方法,该方法将对象列表作为 json 返回,然后您可以使用 ajax 调用该方法。

所以你的方法看起来像:

[HttpGet]
public JsonResult GetClients(//any arguments sent from the client here)
{
    var clients = //code to get clients
    return Json(new {clients = clients}, JsonRequestBehavior.AllowGet);
}

然后使用 jQuery 在您的视图中发出 ajax 请求:

$.ajax({
    url: //url to access GetClients method e.g. '/home/GetClients',
    method: 'GET',
    data: //any arguments you want to send to the server
    success: function(resp){
        var clients = resp.clients;//get list of clients from the response
        //do stuff with the list of clients
    },
    error: {//code to handle what happens if an error occurs}
});
于 2013-10-16T07:56:49.607 回答
1

试用型号:

public class Car
{
    public int Id { get; set; }
    public string Manufacturer { get; set; }
    public string Model { get; set; }
    public DateTime Year { get; set; }
    public List<Passanger> Passangers { get; set; }
}

public class Passanger
{
    public int Id { get; set; }
    public string Name { get; set; }
}

看法:

@model Car
@using(Html.BeginForm("actionName", "controllerName", FormMethod.Post, new { id = "my-form" }))
{
    @Html.HiddenFor(x => x.Id)
    @Html.TextBoxFor(x => x.Manufacturer)
    @Html.TextBoxFor(x => x.Model)
    @Html.TextBoxFor(x => x.Year)

    for(int i = 0, i < Model.Passangers.Count(), i++)
    {
        @Html.HiddenFor(x => Model.Passangers[i].Id)
        @Html.HiddenFor(x => Model.Passangers[i].Name)
    }

    <input type="button" value="Submit" id="form-submit" />
}

<script type="text/javascript">
    $(document).on('click', '#form-submit', function(){
        $.ajax({
            url: "Car/AddCar",
            type: "POST",
            data: $('form#my-form').serialize(),
            success: function (data)
            {
                alert(data);
                // put the data in the container where you have the form.
            }
        });
    });
</script>

更多的

于 2013-10-16T02:54:36.423 回答
0

将列表序列化为 json,使用 json.net 库更容易。

http://json.codeplex.com/

在网页上,您可以对 json 数据进行正常操作。

于 2013-10-16T03:00:02.147 回答