2010-02-18 5 views
1

Si je déclare l'attribut Bind en tant que paramètre de la méthode, cela ne fonctionne pas comme prévune fonctionne pas quand je le déclare en tant que paramètre?

[AcceptVerbs(HttpVerbs.Post)] 
     public ActionResult Create([Bind(Exclude="ID")]int ServiceId, Event evnt) 
     { 
      var service = dbSrc.GetAll().WithID(ServiceId).SingleOrDefault(); 
      if (service == null) 

Mais si je déclare sur le niveau de la classe, ça marche!

[Bind(Exclude = "ID")] 
    partial class Event 
    { 

Le formulaire qui déclenche l'action create est dans usercontrol et j'utilise asp.net mvc 1?

Ma configuration de base de données fonctionne correctement. La colonne id est la clé primaire et générée automatiquement.

Quelle pourrait être la raison? ou c'est un bug dans la version 1.0?

Merci à l'avance

Répondre

6

Que diriez-vous ceci:

public ActionResult Create(int ServiceId, [Bind(Exclude="ID")]Event evnt) 

à la place? Je parie ServiceId n'a pas de propriété ID.

+0

Merci Craig, ça marche! Mais quelle est la raison? Est-ce parce que les paramètres personnalisés viennent en premier et que le modèle avec Bind attire l'attention? –

+1

Lorsque vous mettez [Bind' * inside * the '()' sur une méthode, vous placez l'attribut sur un * argument individuel *, pas sur la méthode entière. –

+0

Je comprends maintenant, merci beaucoup. –

Questions connexes