我遇到了一个问题,我需要将一个复杂类型列表从Angular2发布到MVC动作。问题是当我传递数组时,我总是为参数获取null。如果单个对象,它可以完美地工作。请看下面的代码: 第一个操作获取已发布的对象,但第二个操作始终为null。
[HttpPost]
public JsonResult Submit(Parent parent)
{
return Json(new { data = "some message" }, JsonRequestBehavior.AllowGet);
}
以下内容为空
[HttpPost]
public JsonResult Submit(List<Parent> parents)
{
return Json(new { data = "some message" }, JsonRequestBehavior.AllowGet);
}
public class Parent
{
public int Id { get; set; }
public string Text { get; set; }
public bool? IsCompleted { get; set; }
public string UserResponse { get; set; }
public Dictionary<int, bool> SelectedItemsIds { get; set; }
public virtual List<Child> Children { get; set; }
public virtual List<AnotherChild> Representations { get; set; }
public List<Parent> Drived { get; set; }
}
public class Child
{
public int Id { get; set; }
public string Name { get; set; }
}
public class AnotherChild
{
public int Id { get; set; }
public string HeaderText { get; set; }
}
这就是我的尝试:
submita(): Observable<string> {
let headers = new Headers({ "Content-Type": "application/json" });
let options = new RequestOptions({ headers: headers });
var resp = this.http.post('/Home/Submit', this.parents, options)
.map((response: Response) => <string>response.json().data)
.catch(this.handleError);
return resp;
}
this.parents是父类的数组,它具有与服务器端类相同的属性 任何帮助将不胜感激 请注意,问题似乎与我发布到服务器的数据大小有关。任何我可以增加的想法? 我在网络配置中尝试了以下内容,但它没有修复它。
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147483648" />
</requestFiltering>
</security>