我在将复杂类型传递到控制器时遇到问题。

以下是我的模型的样子:

public class Party
{
    [XmlAttribute]
    public int RsvpCode { get; set; }
    public List<Guest> Guests { get; set; }
    public string Comments { get; set; }
}

public class Guest
{
    [XmlAttribute]
    public string Name { get; set; }
    [XmlAttribute]
    public int MealOption { get; set; }
    [XmlAttribute]
    public bool Attending { get; set; }
}

我的控制器方法如下所示:

    public JsonResult Submit(Party party)
    {
        return Json(party);
    }

我试图像这样做我的ajax调用:

var party = { RsvpCode: 1, Guests: [{ Name: "test asdfasdf", MealOption: 1, Attending: true }, { Name: "test asdfasdf", MealOption: 1, Attending: true}] };

                $.getJSON("/Rsvp/Submit", party, function(response) {
                    alert(response);
                });

出了点问题,但我不确定是什么。我在警报声明中收到任何回复的信息。有什么想法吗?

我也尝试查看提交到控制器方法的值,看起来不对。我在ajax电话中丢失了某些信息。

我也尝试过像这样创建我的派对对象但它不起作用:

var party = { "RsvpCode": 1, "Guests": [{ "Name": "test asdfasdf", "MealOption": 1, "Attending": true }, { "Name": "test asdfasdf", "MealOption": 1, "Attending": true}], "Comments": "testdsfsdf" };
有帮助吗?

解决方案

当我构建派对变量时,ASP.NET MVC希望它看起来像这样:

var party = {&quot; RsvpCode&quot;:1,&quot; Guests [0] .Name&quot;:&quot; test asdfasdf&quot;,&quot; Guests [0] .MealOption&quot;:1,&quot; Guests [0] .Attending&quot; ;:true,“Guests [1] .Name”:“test asdfasdf”,“Guests [1] .MealOption”:1,“Guests [1] .Attending”:“true”,“Comments”:“” ; testdsfsdf&QUOT; };

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top