Asp.net mvc 3 MVC3剃须刀:如何检查模型是否为空

Asp.net mvc 3 MVC3剃须刀:如何检查模型是否为空,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我试过使用!它不起作用,因为模型没有任何扩展名。如何解决? 这是我的代码片段 @model MyModel.Work @if ( !Model.Any() ) { <script type="text/javascript"> alert("Model empty"); </script> } else { <script type="text/jav

我试过使用!它不起作用,因为模型没有任何扩展名。如何解决? 这是我的代码片段

    @model MyModel.Work
    @if ( !Model.Any() )
    {
       <script type="text/javascript">
             alert("Model empty");
       </script>
    }
    else
    {
       <script type="text/javascript">
              alert("Model exists");
       </script>
    }
@model MyModel.Work
@如果(!Model.Any())
{
警报(“模型为空”);
}
其他的
{
警报(“模型存在”);
}
这个怎么样:

if(Model == null)
{
}

在我看来,您似乎正在实例化该模型,但希望检查并查看是否已填充该模型

我的标准方法是创建一个名为
Empty
bool
属性,只给出一个get,然后返回您需要的检查,以查看是否没有设置其他属性

假设您有一个客户类作为您的模型:

public class Customer
{
    public int CustomerId {get;set;}
    public string FirstName {get;set;}
    public string LastName {get;set;}
    public string Email {get;set;}

    public bool Empty
    {
        get { return (CustomerId == 0 && 
                      string.IsNullOrWhiteSpace(FirstName) &&
                      string.IsNullOrWhiteSpace(LastName) &&
                      string.IsNullOrWhiteSpace(Email));         
            }
    }
}
现在,在您的模型中,您只需调用:

@model MyModel.Work
@if (Model.Empty)
{
   <script type="text/javascript">
         alert("Model empty");
   </script>
}
else
{
   <script type="text/javascript">
          alert("Model exists");
   </script>
}
@model MyModel.Work
@if(Model.Empty)
{
警报(“模型为空”);
}
其他的
{
警报(“模型存在”);
}
您可以尝试以下方法:

@if (Model.Count == 0)
{

}

我也有同样的问题。我不知道这是否重要,但我使用MVC5。我忘了将任何东西从控制器发送到视图。因为我放了“返回视图(myList);” 在我的控制器中,方法.Any()工作正常。

@if(!Model.Any()){}
在将数据列表作为模型传递时工作。如果您试图检查model是否为空,它不是一个列表,并且可能包含单个记录或没有记录,那么我通常使用
@If(model==null)


希望能有所帮助:)

前面答案中的信息组合对我很有用

@if (Model != null && Model.Count() != 0)
{
   <ul>
       <li><strong>Hello World</strong></li>
   </ul>
}
@if(Model!=null&&Model.Count()!=0)
{
  • 你好,世界
}

祝你好运。

那么你的模型不是空的。调试它,看看为什么它不是空的。空的!=无效的空集合仍然是集合。
@if(Model==null)
不起作用,因为模型总是返回一些其他关联值。第一个脚本行给出“Expected';”警告。是否也可以告诉用户哪个属性是空的?@if(Model.Count()==0)Count之后缺少()我会说这是一个更好的方法。(当然,它应该是
Model.Count()
。测试null不起作用。
    `
    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.Linq;
    using System.Web;
    
    namespace APIPractice.Models.EmployeeModel
    {
        public class LoginModel
        {
            [Key]
            public int Id { get; set; }
    
            [Required]
            public string Username { get; set; }
    
            [Required]
            public string Password { get; set; }
    
            [Required]
            public string RePassword { get; set; }
    
            [Required]
            public int IsActive { get; set; }
    
            public bool Empty
            {
                get
                {
                    if (
                            string.IsNullOrWhiteSpace(Username) ||
                            string.IsNullOrWhiteSpace(Password) ||
                            string.IsNullOrWhiteSpace(RePassword) ||
                            IsActive == 0
                          )
                    {
                        return false;
                    }
                    else
                    {
                        return true;
                    };
                }
            }
    
        }
    }`
    
and in your controller

    `if (loginModel.Empty)
    { 
        //your success code.
    }else{
        //Your fail msg.
    }`