【问题标题】:Validate Data & Display with .NET Web API and AngularJS使用 .NET Web API 和 AngularJS 验证数据和显示
【发布时间】:2015-10-28 05:17:53
【问题描述】:

对于一个项目,我们让员工上传数据。这些数据将全部放入一个 varchars 临时表中,因为我们不想拒绝包含错误数据的文件。我们希望允许某人修复 Web 界面中的无效字段并发布更新。我们也不能使用 Web 字段验证,因为这些值不是通过表单而是通过平面文件加载的。我们想要遍历临时表列,并让我们的 Web 服务验证每个字段并确保它们是正确的(例如,价格可能需要是一个数字,但他们不小心输入了“价格:123,567.12”)。

public class SomeClass
{
    public string Code { get; set; }
    public string CodeDesc { get; set; }
    public string Price { get; set; }
}

1 个选项:

public class SomeClass
{
    public string Code { get; set; }
    public string CodeIsValid { get; set; }
    public List<string> CodeErrorCodes { get; set; }
    public string CodeDesc { get; set; }
    public string CodeDescIsValid { get; set; }
    public List<string> CodeDescErrorCodes { get; set; }
    public string Price { get; set; }
    public string Price IsValid { get; set; }
    public List<string> Price ErrorCodes { get; set; }
}

选项 2。我们研究了使用 IValidateableObject,但不知道使用它是否有任何缺点,然后通过 Web 服务将错误发送回。

提前致谢!

【问题讨论】:

  • 你有什么问题?
  • 我正在尝试确定将对象发送到方法并验证对象值的最佳方式。例如在上面的示例中,假设代码只能是 10 个字符长。我希望能够通过针对属性值运行方法来验证对象,然后返回其是否有效以及错误是什么。然后对对象中的每个属性执行此操作。最好返回整个对象以及任何验证错误。这是(希望)一个示例,可以对其进行一些澄清,但似乎会有更简单的方法。
  • public class SomeClass { public ValidateableProperty Code { get; set; } public ValidateableProperty CodeDesc { get; set; } public ValidateableProperty Price { get; set; } } public class ValidateableProperty { public string value { get; set; } public bool IsValid { get; set; } public List&lt;string&gt; listValidationErrors { get; set; } }

标签: c# angularjs validation asp.net-web-api


【解决方案1】:

那你应该看看 System.ComponentModel.DataAnnotations

您可以使用名称中定义的名称,也可以通过从类继承并覆盖其 IsValid(Object) 方法来创建自己的名称。

您只需将属性添加到您的数据模型(一个或多个),它看起来像

[Required, Url, YourOwn] // just an example
public string MyProp { get; set; }

这是Url 示例

【讨论】:

    猜你喜欢
    • 2015-04-05
    • 2017-07-27
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多