Tag: validation

c#XML Schemavalidation

我有一个很好的XML文件,如下所示: Boomerang – Error codes.xlsx Boomerang – Error codes This is the Boomerang error codes file Excel Boomerang 1 4 Issue Tracker v5.xlsx This is the issue tracker for Skipstone Excel Skipstone 1 4 然后我有我创建的架构,如下所示: 据我所知,xml文件无效,因为第一个元素是Assetd而不是Asset,但如果我运行我的c#代码: XmlSchemaSet schemas = new XmlSchemaSet(); schemas.Add(“http://tempuri.org/data.xsd”, “data.xsd”); XDocument doc = XDocument.Load(openFileDialog1.FileName); string msg = “”; doc.Validate(schemas, (o, err) => […]

ASP MVC:自定义validation属性

我正在尝试编写自己的自定义validation属性,但我遇到了一些问题。 我想写的属性是当用户登录时,密码将与确认密码进行比较。 namespace Data.Attributes { public class ComparePassword : ValidationAttribute { public string PasswordToCompareWith { get; set; } public override bool IsValid(object value) { if (PasswordToCompareWith == (string)value) { return true; } return false; } } 现在我的问题是当我试图在模型文件中设置这样的属性时: [Required] [ComparePassword(PasswordToCompareWith=ConfirmPassword)] public string Password { get; set; } [Required] public string ConfirmPassword { get; set; } } […]

validation使用Moq调用的generics方法

我无法validation使用Moq.Mock.Verify调用IInterface.SomeMethod(T arg) Moq.Mock.Verify 。 我可以使用It.IsAny()或It.IsAny()validation是否在“标准”接口上调用了该方法,并且我没有使用It.IsAny()validationgenerics方法调用的It.IsAny() ,但我无法validation使用It.IsAny()调用generics方法 – 它总是说没有调用该方法并且unit testing失败。 这是我的unit testing: public void TestMethod1() { var mockInterface = new Mock(); var classUnderTest = new ClassUnderTest(mockInterface.Object); classUnderTest.Run(); // next three lines are fine and pass the unit tests mockInterface.Verify(serviceInterface => serviceInterface.NotGenericMethod(It.IsAny()), Times.Once()); mockInterface.Verify(serviceInterface => serviceInterface.NotGenericMethod(It.IsAny()), Times.Once()); mockInterface.Verify(serviceInterface => serviceInterface.GenericMethod(It.IsAny()), Times.Once()); // this line breaks: “Expected invocation […]

validation规则使用来自另一个控件的值

我正在尝试做一些我之前认为非常简单的事情:在另一个控件的validation规则中使用一个控件的值。 我的应用程序具有用户可以输入的各种参数,这里讨论的特定参数定义范围的起点和终点,用户通过文本框设置值。 有问题的两个控件是开始和结束文本框,并且应在validation中检查以下条件: 起始值必须大于或等于某个任意值 结束值必须小于或等于某个任意值 起始值必须小于或等于结束值 我已经完成的前两个条件。 第三个实现起来要困难得多,因为我无法从validation器访问结束文本框的值。 即使我可以,有五个不同的范围(每个都有自己的开始和结束文本框)我正在尝试validation,并且必须有一些解决方案比为每个范围创建validation规则更优雅。 这是相关的XAML代码: 这是相关的C#代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Runtime.CompilerServices; using System.ComponentModel; using System.Globalization; namespace WpfApplication1 { /// /// Interaction logic for MainWindow.xaml /// […]

如何在MVC Web API post方法中将ModelState错误返回给Kendo网格?

我无法找到一个Kendo + MVC Web API的示例,其中post / update方法返回validation错误。 看起来没有Kendo扩展可以使以下代码工作。 public HttpResponseMessage Post([ModelBinder(typeof(Prototype.WebApi.ModelBinders.DataSourceRequestModelBinder))][DataSourceRequest] DataSourceRequest request, User user) { if (this.ModelState.IsValid) { //save } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, this.ModelState.ToDataSourceResult()); } 因此,在此上下文中的ModelState是System.Web.Http.ModelBinding.ModelStateDictionary和Kendo扩展期望System.Web.Mvc.ModelStateDictionary。 那么将ModelState错误从Web API返回到Kendo的最佳方法是什么?

正则表达式错误消息

使用RegularExpression(@”^\d{1,15}$”)] ,我希望用户输入长度最多为15的数字 ,这将返回错误消息“请输入最多15位数的联系人号码”这是不正确的 [Required(ErrorMessage = (“Please enter up to 15 digits for a contact number”)), Display(Name = “Contact Number”), RegularExpression(@”^\d{1,15}$”)] public string ContactNumber { get; set; } 如果用户没有这样做,我留下了错误消息: The field Contact Number must match the regular expression ‘^\d{1,15}$’. 而不是’Please enter up to 15 digits for a contact number’ …有谁知道为什么? 谢谢

validation年龄不低于18岁

如果此人未满18岁,如何显示错误消息? 我使用以下代码,但它始终显示年龄无效,即使我输入的日期早于1995年。 DateTime dt = DateTime.Parse(dob_main.Text); DateTime dt_now = DateTime.Now; DateTime dt_18 = dt.AddYears(-18); if (dt.Date >= dt_18.Date) { MessageBox.Show(“Invalid Birth Day”); }

ServiceStack – validation和数据库访问

我正在使用ServiceStack实现Api。 我的解决方案的一个关键方面是积极的validation策略。 我使用ServiceStack的ValidationFeature,这意味着如果在应用程序容器中注册了IValidator (或其后代:AbstractValidator ),validation将在服务之前自动运行。 通过积极validation,我的意思是我检查所有可能的错误情况,以及validation器级别的逻辑validation。 因此,我的服务逻辑非常简洁。 从实际的角度来看,服务validation的服务逻辑的这种独立性是非常好的,因为它提供了非常容易阅读和推理服务逻辑/实现。 但是,我开始认为FluentValidation的规则和规则集更适合简单的格式validation,而不是直接在我正在进行的数据库访问(主要是测试源自请求中提取的ID的404错误)。 问题: 1:validation逻辑在概念上是否存在访问数据库的错误? 2:从我到目前为止看到的,包括SS源代码,我没有找到一个表单来定义FluentValidation规则,例如:从请求中提取Id,访问数据库检索实体,如果是,则抛出404没有找到进入。 我只使用FV规则来定义基本格式validation,例如: RuleFor(x => x.UserName).NotEmpty(); RuleFor(x => x.Password).NotEmpty(); 其余的我手动做。 有解决这个问题的人吗? 注意:这不是关于如何将ValidationResult / ValidationError转换为HttpResult / HttpError的问题。 我已经介绍过,使用了SS 3.9.44中引入的ValidationFeature的ErrorResponseFilter。 谢谢

如何在C#中存储之前validation.csv文件?

我有一些.csv文件,我在存储到数据库之前解析。 我想使应用程序更健壮,并在保存到数据库之前对.csv文件执行validation。 所以我问你们,如果你们有一些很好的链接,或代码示例,模式或建议如何做到这一点? 我将在下面粘贴我的.csv文件的示例。 .csv文件中的不同数据字段由制表符分隔。 每个新的数据行都在一个新行上。 我一直在思考我应该validation的内容,并提出了下面的列表(我非常愿意接受其他建议,以防你有什么想法应该添加到列表中?) Correct file encoding. That file is not empty. Correct number of lines/columns. correct number/text/date formats. correct number ranges. 这就是我的.csv文件的样子(带有两行的文件,一行上的数据由制表符分隔)。 4523424 A123456 GT-P1000 mobile phone Samsung XSD1234 135354191325234 345353 A134211 A8181 mobile phome HTC S4112-ad3 111911911932343 上面的字符串表示forms如下: “4523424\tA123456\tGT-P1000\tmobile phone\tSamsung\tXSD1234\t135354191325234\r \n345353\tA134211\tA8181\tmobile phome\tHTC\tS4112-ad3\t111911911932343\r\n” 那么你有没有关于如何在C#中做到这一点的好的设计,链接,模式,代码示例等?

在validation器中访问Servicstack.net会话

如何在validation代码中访问ServiceStack.net会话? public class UserSettingsValidator : AbstractValidator { public UserSettingsValidator() { RuleFor(x => x.UserId) .SetValidator(new PositiveIntegerValidator()) .SetValidator(new UserAccessValidator(session.UserId)); //<– I need to pass the UserID from the session here } } 在服务实现中,我只是这样做: var session = base.SessionAs(); 但这对我的抽象validation器不起作用。 谢谢! 编辑:这是版本3.9.71.0