Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果用户没有';我没有创建列表项_C#_Asp.net Mvc_Razor - Fatal编程技术网

C# 如果用户没有';我没有创建列表项

C# 如果用户没有';我没有创建列表项,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,Im使用默认的web应用程序mvc 5模板项目和asp.net标识。 我有一个Movie.cs模型,并将每个用户关联到一个电影列表,因此当您注册时,您可以使用CRUD在列表中添加电影,我会在主页上显示它们 我的viewmodel: @model MovieApp.ViewModels.UserMovieViewModel @using MovieApp.Models; <div class="row" style="margin-top:60px"> @using (Ap

Im使用默认的web应用程序mvc 5模板项目和asp.net标识。 我有一个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>
那么,如果用户没有创建任何电影,如何在每个用户下的列表中显示消息(如下图所示)


只需在视图中添加一个条件

if (_user.Movies.Any())
{
    your foreach
}
else
{
    your message
}

只需在视图中添加一个条件

if (_user.Movies.Any())
{
    your foreach
}
else
{
    your message
}

您可以通过检查
内是否有任何电影来轻松实现这一点。面板主体
如下所示:

<div class="panel-body">
    @if(_user.Movies != null && _user.Movies.Any()) {
        <ul>
            @foreach (var _movie in _user.Movies.Where(x => x.ApplicationUserID == _user.Id)) 
            {
                <li>@_movie.MovieName</li>
            }
        </ul>
    } 
    else 
    {
        <p>No movies...</p>
    }
</div>

@if(_user.Movies!=null&&u user.Movies.Any()){
    @foreach(var\u movie在_user.Movies.Where(x=>x.applicationserid==\u user.Id)中) {
  • @_电影名称
  • }
} 其他的 { 没有电影

}
您可以通过检查
内部是否有电影来轻松实现这一点。面板主体
如下所示:

<div class="panel-body">
    @if(_user.Movies != null && _user.Movies.Any()) {
        <ul>
            @foreach (var _movie in _user.Movies.Where(x => x.ApplicationUserID == _user.Id)) 
            {
                <li>@_movie.MovieName</li>
            }
        </ul>
    } 
    else 
    {
        <p>No movies...</p>
    }
</div>

@if(_user.Movies!=null&&u user.Movies.Any()){
    @foreach(var\u movie在_user.Movies.Where(x=>x.applicationserid==\u user.Id)中) {
  • @_电影名称
  • }
} 其他的 { 没有电影

}
为Movies属性使用备份变量,并将其初始化为空列表:

IList<Movie> _movies = new List<Movie>();
IList\u movies=new List();
然后,您的属性定义变为:

IList<Movie> Movies
{
    get
    {
        return _movies;
    }

    set
    {
        _movies = value;
    }
}
IList电影
{
得到
{
回归电影;
}
设置
{
_电影=价值;
}
}

这将确保如果用户尚未添加任何电影,则movies属性将返回一个空的电影列表,而不是null。

为movies属性使用一个备份变量,并将其初始化为空列表:

IList<Movie> _movies = new List<Movie>();
IList\u movies=new List();
然后,您的属性定义变为:

IList<Movie> Movies
{
    get
    {
        return _movies;
    }

    set
    {
        _movies = value;
    }
}
IList电影
{
得到
{
回归电影;
}
设置
{
_电影=价值;
}
}


这将确保如果用户尚未添加任何电影,movies属性将返回一个空的电影列表,而不是null。

确保在ApplicationUser模型中,您正在将movies属性的基础变量初始化为new list();为了确保它永远不为空。只需按照Kevin所说的做,它将在一个空的枚举表上运行,然后对您的消息执行:
如果(!\u user.Movies.Any())
。@Kevin在我的appuser模型中,我有这样一个电影属性:public List Movies{get;set;},所以我不知道我是否做对了,但当我把它改为public List Movies=new List();然后,我的视图中没有任何列表。请确保在ApplicationUser模型中,您正在将Movies属性的基础变量初始化为new list();为了确保它永远不为空。只需按照Kevin所说的做,它将在一个空的枚举表上运行,然后对您的消息执行:
如果(!\u user.Movies.Any())
。@Kevin在我的appuser模型中,我有这样一个电影属性:public List Movies{get;set;},所以我不知道我是否做对了,但当我把它改为public List Movies=new List();然后我的视图中没有任何列表。这将循环所有电影,然后检查计数是否大于0。使用
Any
Any
返回布尔而不是int,不需要
>0
。我想编辑它,但由于限制,我不能。这是一个蹩脚的错误。不过,这将在所有电影中循环,然后检查计数是否大于0。使用
Any
Any
返回布尔而不是int,不需要
>0
。我想编辑它,但由于限制我不能。这是一个蹩脚的错误,你不需要
任何
检查是否为真。电影将是一个空的可枚举文件,因此它不会呈现任何内容。只需要一次检查是否为非真,并显示消息。嗯,是的。如果(!\u user.Movies.Any()){No Movies…

},您可以反转语句并执行
)@mwilczynski我试过了,但是如果(_user.Movies.Any())@john,我仍然得到这一行的null异常,这意味着_user.Movies也可以为null。我已更新我的答案以检查
\u user.Movies!=null
。您不需要
任何检查是否为true。电影将是一个空的可枚举文件,因此它不会呈现任何内容。只需要一次检查是否为非真,并显示消息。嗯,是的。如果(!\u user.Movies.Any()){No Movies…

}
,您可以反转语句并执行
)@mwilczynski我试过了,但是如果(_user.Movies.Any())@john,我仍然得到这一行的null异常,这意味着_user.Movies也可以为null。我已更新我的答案以检查
\u user.Movies!=空