我正在移动一个项目,只是数据层,这个项目使用的是MVC 1.0和acess mdb :S
现在我要转到SubSonic + 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 "";
}
}}
在我的控制器中,我在post操作中添加了以下代码:
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,请帮帮我:)
提前向您致以最良好的问候和感谢。
无法捕捉此错误:
发布于 2009-06-21 15:01:44
您使用的是哪个版本的SubSonic?v2.0.3中的IIRC、Save()可以两次调用验证方法。
https://stackoverflow.com/questions/1021049
复制相似问题