首先抱歉,如果我的头衔难以理解。我还在学习,请原谅。我搜索了StackOverflow,但没有发现任何我可以剪辑到我的问题。 所以...我自己教MVC和C#,我决定创建一个小博客应用程序。我使用N-Tier架构,其中包含Blog.Back(管理面板前端的东西和使用Logic的ModelProviders操纵数据的控制器),Blog.DAL包含EDMX,Blog.Logic包含Models和ModelProviders 。我有这个型号:
public class CategoryModel
{
public int Id { get; set; }
public string Name { get; set; }
public List Posts { get; set; }
public CategoryModel()
{
Posts = new List();
}
}
其中包含构造函数,其中包含空的帖子,但我无法弄清楚如何使用数据填充它,现在如果我遍历我的CategoryModel列出类别,并在我的视图中如果我计算(@ Model.Posts) .Count())它总是返回0.任何想法?请详细说明答案。
很抱歉,如果它是重复的。我试过搜索,但没有发现任何相似之处。
答案 0 :(得分:0)
您必须创建一个CategoryModel对象并用一些数据填充它,例如:
var model = new CategoryModel
{
Id = 1,
Name = "Some Name",
Posts = new List<Post>
{
new Post() {
SomeProperty = "Some Property"
},
new Post() {
SomeProperty = "Some Property"
}
}
};
然后你可以使用以下代码遍历它的Posts属性:
foreach (var post in model.Posts)
{
Console.WriteLine("Property: ", post.SomeProperty);
}
也许这不是一个完美的例子,但我希望它会对你有所帮助。
答案 1 :(得分:0)
实际上我应该在将基本模型映射到我的模型的方法中填充模型,对我来说是:
public static CategoryModel From(Category data, bool deep = false)
{
return new CategoryModel()
{
Id = data.Id,
Name = data.Name,
Posts = data.Posts.Select(p => PostModel.From(p)).ToList()
};
}
但是我陷入了PostModel的无休止的looo couse,调用了CategoryModel,而CategoryModel正在调用PostModel。所以我给出了第二个参数“深度”。在这里。 Count就像魅力一样,模型已经填充。
public static CategoryModel From(Category data, bool deep = false)
{
if (deep)
{
return new CategoryModel()
{
Id = data.Id,
Name = data.Name,
Posts = data.Posts.Select(p => PostModel.From(p)).ToList()
};
}
else
{
return new CategoryModel()
{
Id = data.Id,
Name = data.Name
};
}
}
它正在运作,但它是否正确?