私はasp.net IDを持つデフォルトのWebアプリケーションmvc 5テンプレートプロジェクトを使用しています。 私はMovie.csモデルを持っていて、各ユーザーにムービーリストを関連付けました。登録すると、ムービーをCRUDでリストに追加し、ホームページに表示できます。ユーザが作成したリストアイテムを持っていない場合にメッセージを表示するには
私のviewmodel:私は、リスト内の任意の動画を追加していないユーザーがいる場合は
@model MovieApp.ViewModels.UserMovieViewModel
@using MovieApp.Models;
<div class="row" style="margin-top:60px">
@using (ApplicationDbContext db = new ApplicationDbContext())
{
if (db.Users.Any())
{
foreach (var _user in Model.ApplicationUser)
{
<div class="col-md-4">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">@_user.UserName</h3>
</div>
<div class="panel-body">
<ul>
@foreach (var _movie in _user.Movies.Where(x => x.ApplicationUserID == _user.Id))
{
<li>@_movie.MovieName</li>
}
</ul>
</div>
</div>
</div>
}
}
else
{
<h2 class="alert alert-danger text-center">No movie lists</h2>
}
}
</div>
は、その後、私はこのラインの場合はnull例外エラーを得た:
@foreach (var _movie in _user.Movies.Where(x => x.ApplicationUserID == _user.Id))
このように、ユーザーが映画を作成していない場合、各ユーザーの下のリストにメッセージを表示するにはどうすればいいですか?
ApplicationUserモデルで、Moviesプロパティの基になる変数を新しいリスト()に初期化していることを確認してください。ヌルでないことを確認してください。 –
Kevin
ちょうどケビンが言ったように、それは空のEnumerableで動作し、あなたのメッセージで 'if(!_user.Movies.Any())'を実行します。 –
@Kevin私のappuserモデルでは、私はこのような映画のためのプロパティを持っています: public List Movies {get;セット; }ので、私はこの権利を行うが、私はそれを公開リストに変更するときはわからないのでムービー=新しいリスト(); 私は私のビューではどのリストも得られません。 –
john