我有一个实现 IDataErrorInfo 的验证类,它具有您必须实现的所有方法。
一个是
public string this[string columnName]
{
get
{
}
}
return "";
现在在这个 switch 语句中,我对我的表单进行了一些验证。
现在我注意到我的很多表单都需要完全相同的验证内容。
所以现在当我需要添加更多验证时,我会创建一个实现“IDataErrorInfo”的新类,添加额外的验证。
然后在视图中我做这样的事情
CoreValidation coreReg = new CoreValidation();
try
{
UpdateModel(coreReg, regForm.ToValueProvider());
}
catch
{
return View();
}
MoreValidation moreReg = new MoreValidation();
try
{
UpdateModel(moreReg , regForm.ToValueProvider());
}
catch
{
return View();
}
我只是不喜欢这样一个事实,我需要有 2 个单独的 try catch 语句,这些语句可以继续增长。如果我需要说“核心”和“更多”并添加一些无法进入其中任何一个的验证,我正在寻找另一个尝试捕获。
我试图去“CoreValidation”类并提取出switch语句和属性并将其放入一个新类中。
然后我的计划是使用 swtich 语句调用该类和方法。所以在“更多”验证类中我会在这个
public string this[string columnName]
{
get
{
CoreValidtion(columnName); // this would contain the switch statement
//add another switch here with extra validation.
}
}
return "";
然后我只会有一次尝试捕获并且我不会复制任何代码,因为一切都会调用相同的方法(CoreValidation)。
但是 updateModel 似乎无法解决这个问题。当 UpdateModel 尝试设置它需要设置的任何东西时,它找不到属性方法,所以所有属性都像
“用户名”全部设置为空。
那么我该如何做我想做的事呢?
谢谢