您好我有agularjs资源下面,工作正常。Angularjs资源将空对象发送到api控制器
return {
formDis: $resource('/api/pDisc/:id', { id: '@id' }, { update: { method: 'POST' } })
};
angularjs cotroller使用的资源是
$scope.submit = function (form) {
console.log(form.dis.length);
console.log(form.dis);
for (var i = 0; i < form.dis.length; i++) {
pRepository.formDis.update(form.dis[i], function() {
{
alert("Saved");
}
});
};
};
WebConfig是
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
是recieving是
MVC阿比
// POST api/projDisc
public HttpResponseMessage Postproject_discussion(pDis pDis)
{
db.project_discussion.Add(pDis);
db.SaveChanges();
}
类是
[DataContract(IsReference = false)]
[Serializable]
public partial class pDis
{
public int pDis_id { get; set; }
public int pro_id { get; set; }
public string message {get; set;}
public virtual pro pro { get; set; }
public virtual people people { get; set; }
}
}
当我运行它,我在API得到错误的
db.project_discussion.Add(pDis);
错误是
An exception of type 'System.Data.Entity.Validation.DbEntityValidationException' occurred in EntityFramework.dll but was not handled in user code
因为API是接收空对象我得到这个错误。 在角度控制器中,我可以看到控制台中的对象从窗体正确传递。 一旦对象被提交到资源并从它到API,有一些错误,它最终作为空对象。请让我知道如何解决它。
您可以使用浏览器调试工具并查看发送到服务器的内容吗? –
在浏览器工具中,我看到,POST http:// localhost:60482/api/projDis发布的数据是{“pro_id”:“221”,“message”:“sdsfsd”pDis_id:“”}数据正在提交控制器到它的时间它是只是空的 –