这让我大吃一惊。我有这个类具有以下属性:
public IEnumerable<QuestionModel> Questions { get; set; }
public int TotalQuestions
{
get
{
return Questions.Count();
}
}
public int TotalCorrect
{
get
{
return Questions.Count( x => x.Correct );
}
}
public int Score
{
get
{
return ( TotalCorrect / TotalQuestions ) * 100;
}
}
以下是我在控制器中创建模型的方法:
var model = new QuizModel
{
Questions = new List<QuestionModel>
{
new QuestionModel
{
Correct = true
},
new QuestionModel
{
Correct = false
}
}
};
TotalQuestions 等于 2。TotalCorrect 等于 1。但 Score 始终为 0。
我想也许分数是在设置其他属性之前设置的,所以我尝试了这个:
public int Score()
{
return ( TotalCorrect / TotalQuestions ) * 100;
}
我认为这会起作用,因为当我在视图中调用 Score() 时,肯定会设置其他属性。但它只返回 0。
我还尝试将 IEnumerable 更改为 IList。那里没有运气。