J'ai essayé d'utiliser! Model.Any (), cela ne fonctionne pas, car model n'a pas d'extension. Comment résoudre? Voici mon extrait de code.
@model MyModel.Work
@if ( !Model.Any() )
{
<script type="text/javascript">
alert("Model empty");
</script>
}
else
{
<script type="text/javascript">
alert("Model exists");
</script>
}
Il me semble que vous instanciez le modèle, mais que vous souhaitez vérifier si le modèle a été rempli.
Ma méthode habituelle consiste à créer une propriété bool
appelée Empty
, en donnant uniquement un get, puis à renvoyer la vérification dont vous avez besoin pour voir si aucune autre propriété n'a été définie.
Supposons que vous ayez une classe de clients comme modèle:
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));
}
}
}
Maintenant, dans votre modèle, vous appelez simplement:
@model MyModel.Work
@if (Model.Empty)
{
<script type="text/javascript">
alert("Model empty");
</script>
}
else
{
<script type="text/javascript">
alert("Model exists");
</script>
}
Vous pouvez essayer ceci:
@if (Model.Count == 0)
{
}
que dis-tu de ça:
if(Model == null)
{
}
@if(!Model.Any()){}
fonctionne lorsque vous transmettez une liste de données en tant que modèle. Si vous essayez de vérifier si le modèle est vide, ce qui n'est pas une liste et peut contenir un enregistrement ou aucun, j'utilise normalement @if(Model == null)
.
J'espère que ça aide :)
J'ai eu le même problème. Je ne sais pas si c'est important, mais j'utilise MVC5. J'ai oublié d'envoyer quoi que ce soit du contrôleur à la vue. Depuis que j'ai mis "return View (myList);" Dans mon contrôleur, la méthode .Any () fonctionne bien.