2009-06-20 135 views
0

我而动1个项目,仅仅是数据层,该项目使用MVC 1.0和接取MDB:S实现IDataErrorInfo的亚音速2.2

现在我移动到亚音速+ SQL Server和所有的罚款,除非我尝试实现我的类IDataErrorInfo验证消息,我总是得到2次每个错误消息

我有一个由subsonic生成的表类:MyTable,然后我扩展它。

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 ""; 
    } 
} 

}

在我的控制器我添加到我的职务行为验证码:

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); 
    } 
} 

我的看法是Html.ValidationSummary已生成的摘要( “注意:”)

当我得到无效数据我的总结得到2倍的错误,因为它:

注意:
错误MyField的
错误MyField的
不正确的另一个
不正确的另一个

我不想改写验证形式,这里是一个很大的意见(约130)。我认为问题是在亚音速的某个地方,但我不能得到的地方:S,请帮助我:)

最好的问候和感谢提前。

没有办法赶上V2.0.3这个错误:(您正在使用哪个版本的亚音速的

回答

0

?IIRC,保存()可以调用验证方法的两倍。

+0

我从谷歌下载源代码最新的亚音速2.2,就在5天前,并且编译了它,在哪里调用它2倍的验证方法呢?我要去看看,谢谢 – 2009-06-22 03:38:51