我在尝试使用ViewModel在视图中实现forloop时遇到问题。
我有这个ViewModel
public class EventDashboard
{
public int Id {get;set;}
public string Name {get;set;}
public string Email {get;set;}
public string Phone {get;set;}
public ICollection<FighterDetails> FightersFees{ get; set; }
public void LoadFighterDetails(int eventId, int fighterId, aContext ac, bContext bc){
Fighters fighter = ac
.Fighters
.Include(npo => npo.FighterAddress)
.FirstOrDefault(npo => npo.FighterId== fighterId);
this.Name = fighter.Name;
this.Email = fighter.Email;
this.Phone = fighter.Phone;
LoadFees(bc, fighterId);
}
public void LoadFees(bContext bc, int fighterId)
{
var fees = bc.Fees.Where(f => f.fighterId == fighterId);
FightersFees = new List<FighterDetails>();
foreach(var f in fees){
this.FightersFees.Add(new FighterDetails{
//fill the properties
});
}
}
}
public class FighterDetails
{
public string FighterName { get; set; }
public int fighterId { get; set; }
public decimal FighterFee { get; set; }
}
在我看来:
<% foreach( var d in Model.Fighters){ %>
<%} %>
但它不断推出该错误(关于主题)。想知道为什么它会在viewmodels上发生。关于如何帮助我理解这个错误的任何想法都非常感激。
修改
添加了其余代码
该项目目前正在使用ef 4.0。不确定这是否相关。
答案 0 :(得分:3)
显然你不能使用&#34;模型&#34;如果你已经宣布了它就宣告了什么?
好吧,为了更好地解释它,这对我有所帮助。 Model conflicts with declaration
我实际上是在前几个编辑框中声明了Model
例如。 <%: Html.DisplayFor(Model => Model.FighterName)%>
然后再次在foreach上调用它。第一次声明它会导致错误。