Asp.net mvc 通过AJAX将JSON连接到MVCAPI控制器
因此,我试图通过将一些JSON通过ajax发布到MVCAPI控制器,向一些博客文章添加一个类似的函数 型号:Asp.net mvc 通过AJAX将JSON连接到MVCAPI控制器,asp.net-mvc,json,Asp.net Mvc,Json,因此,我试图通过将一些JSON通过ajax发布到MVCAPI控制器,向一些博客文章添加一个类似的函数 型号: public class Blog{ public int ID{get;set;} public string Title{get;set;} //Some more stuff public virtual ICollection<Likes> Likes {get;set;} } public class Likes{ public int
public class Blog{
public int ID{get;set;}
public string Title{get;set;}
//Some more stuff
public virtual ICollection<Likes> Likes {get;set;}
}
public class Likes{
public int ID{get;set;}
public string UserName{get;set;}
//Some more stuff
public virtual Blog Blog{get;set;}
}
以下返回在ajax调用中传递到JSON.stringify:
var UserName = "Dave";
//More stuff
var Blog = "????";
return {UserName:UserName, More Stuff, Blog:Blog}
所以最后一行是我的问题,我想,我应该为博客传递什么?我尝试使用博客的ID,但在控制器中仍然为空。控制器似乎想要一个完整的博客模型,而不仅仅是ID,有没有办法解决这个问题,或者我做了什么坏事
TLDR我猜是:当向控制器发送JSON时,向模型中的公共虚拟博客Blog{get;set;}字段传递什么
另外,当我没有将博客作为JSON的一部分时,我的代码就可以工作。如果你发布了一个类似的帖子,那么这可能就可以了
{
ID : 789 //ID of the Like
UserName : "Username",
Blog : {
ID : 789 //id of the blog
}
}
通过这种方式,您将拥有博客的id,并将正确映射
但我建议您为以下结构创建一个单独的视图模型
public LikeAjax
{
public string UserName{get; set;}
public int BlogId {get; set;}
}
然后发送json,如下所示
{
UserName : "User Name",
BlogId : 789
}
谢谢,这确实在控制器中设置了博客的ID,但是看起来它只是创建了一个只填充了ID的空白博客,因此文章没有通过ModelState。是否有效?这就是为什么我主张使用单独的视图模型
{
UserName : "User Name",
BlogId : 789
}