ASP.NET MVC将复杂类型传递给控制器问题
-
03-07-2019 - |
题
我在将复杂类型传递到控制器时遇到问题。
以下是我的模型的样子:
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; };
不隶属于 StackOverflow