modèle mvc validation requise ne fonctionne pas sur tous les champs

Je travaille dans ASP.NET MVC 4 et j'ai le problème que mon modèle de validation ne fonctionne pas correctement. Pour une raison pas tous mes champs obligatoires doivent être remplis.

Voici mon modèle:

public class MovieModel
    {
        public int Id { get; set; }
        [Required]
        public string Name { get; set; }
        public DateTime ReleaseDate { get; set; }
        [Required]
        public string Genre { get; set; }
        [Required]
        public decimal Price { get; set; }

        public virtual ICollection<RoleInMovie> RoleInMovie { get; set; }
    }

Voici la Vue:

@using (Html.BeginForm())
{
<table>
<tr>
<td>
<label>Name:</label></td>
<td>@Html.EditorFor(m => m.Name)</td>
<td>@Html.ValidationMessageFor(m => m.Name)</td>
</tr>
<tr>
<td>
<label>Genre:</label></td>
<td>@Html.EditorFor(m => m.Genre)</td>
<td>@Html.ValidationMessageFor(m => m.Genre)</td>
</tr>
<tr>
<td>
<label>Price:</label></td>
<td>@Html.EditorFor(m => m.Price)</td>
<td>@Html.ValidationMessageFor(m => m.Price)</td>
</tr>
</table>
<button type="submit">Submit</button>
}

Et voici mon action:

[HttpPost]
public ActionResult Add(MovieModel model)
{
if(ModelState.IsValid)
{
return RedirectToAction("Index");
}
return View();
}

Maintenant, voici la chose: dès que je rentre seulement un prix, modelstate.isvalid devient vrai. Quand le curseur est sur mon modèle, il les isc à la fois le nom et le genre sont nulles. Bien sûr, ils sont nécessaires, mais la validation ne fonctionne pas.
Aussi, le validationmessagefor fonctionne uniquement sur les prix.

J'espère que je ne suis pas donnant sur quelque chose d'aussi ridicule. Merci pour l'aide!

ce qui se passe lorsque vous cliquez sur soumettre?
Si je remplir un prix, modelstate devient valide et je vais à l'index. Si je n'ai pas de remplir le prix, je vais retourner Voir(); et seul le prix donne une erreur. Le nom et le Genre ne donnez JAMAIS d'erreurs ou de faire modelstate pas valide.

OriginalL'auteur whodares | 2012-09-10