0

私はこのモデルクラスを持っています:

public class UserProfile
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string UserName { get; set; }

    public DbSet<ForeignExpression> learnedexpressions { get; set; }
}

コントローラーで dbset を作成します。

int userID = (int)Membership.GetUser().ProviderUserKey;
model.ForeignExpressions=db.UserProfiles.Find(userID).learnedexpressions;

次に、ビューで、それらを書き出そうとします:

@foreach (var exp in Model.ForeignExpressions.OrderByDescending(m => m.dateAdded).Take(@numOfExpressions).ToList().OrderBy(m => m.dateAdded))
{
<tr>
<td> @exp.expression</td>
<td> @exp.meaning</td>
<td> "@exp.context"</td>
<td> @exp.dateAdded</td>
</tr>  
}

ただし、Model.ForeignExpressions は null であるため、foreach の実行時エラーが発生します (値を null にすることはできません)。現在のユーザーにはまだ ForeignExpression がないため、learnedexpressions の値が null であると思われます。私は正しいですか、これを処理する最善の方法は何ですか? ビュー、コントローラー、またはモデルで修正する必要がありますか?

4

2 に答える 2

1

それを使用する前に、次のことをForeignExpressionsテストします。null

@if (Model.ForeignExpressions != null)
{
 // foreach
}
于 2013-10-11T22:23:58.287 に答える