2009-06-20 6 views
0

Je déménage 1 projet, juste le niveau de données, le projet utilise MVC 1.0 et acess mdb: Smise en œuvre IDataErrorInfo avec Subsonic 2.2

Maintenant, je me déplace au serveur SubSonic + Sql et tout va bien, sauf si J'essaye d'implémenter à ma classe IDataErrorInfo pour des messages de validation, je reçois toujours 2 fois chaque message d'erreur

J'ai une classe de table générée par subsonic: MyTable, alors je l'étend.

public partial class myTable : IDataErrorInfo{ 
public string this[string columnName]{ 
    get{ 
     switch (columnName.ToUpperInvariant()){ 
      case "MYFIELD": 
       if (string.IsNullOrEmpty(myField)){ 
        return "Incorrect MyField"; 
       } 
       break; 
      case "ANOTHER": 
       if (string.IsNullOrEmpty(myField)){ 
        return "Incorrect Another"; 
       } 
       break; 
     } 
     return ""; 
    } 
} 

public string Error{ 
    get{ 
     return ""; 
    } 
} 

}

Mon contrôleur ajouter à mon action après ce code:

public class mycontroller...{ 
[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult myAction(int id, MyTable data) 
{ 
    try 
    { 
     UpdateModel(data, new[] { "MyField","Another" }); 
     data.Save(); 
     return RedirectToAction("Admin"); 
    } 
    catch (Exception ex) 
    { 
     //ViewData["Error"] = ex.Message; 
     return View(data); 
    } 
} 

Mon point de vue ont généré un résumé comme Html.ValidationSummary ("Attention")

Lorsque j'obtiens des données invalides Mon résumé obtient 2 fois l'erreur comme il:

Attention:
MyField incorrect
MyField incorrect
incorrect Une autre
incorrect Une autre

Je ne veux pas réécrire la forme de validation, voici beaucoup de points de vue (environ 130). Je pense que le problème est quelque part dans Subsonic, mais je ne peux pas obtenir où: S, S'il vous plaît aidez-moi :)

Cordialement et merci d'avance.

aucun moyen de rattraper cette erreur :(

Répondre

0

Quelle version de subsoniques vous utilisez? IIRC, Save() dans v2.0.3 pourrait appeler la méthode de validation à deux reprises.

+0

Je télécharger la source de Google le dernière subsonic 2.2, il y a seulement 5 jours, et compilé, où l'appelle 2 fois la méthode de validation? Je vais le regarder, merci –

+0

OH, j'ai oublié de dire, je l'obtiens, vía SVN merci –

+0

Le "bug" de l'appel double était dans le précédent SubSonic 2.0.3 2.1 (et 2.2) ne pas avoir ce problème. ething autre. – kevinw