这是关于C#中的数据注释。
我有一个叫MyClass的类。在那里我将拥有两个属性。
class MyClass
{
private string _propName;
public string PropName
{
get {return _propName;}
set {_propName=value;}
}
private string _propVal;
public string PropVal
{
我想创建我自己的验证类(我想将很多JS中的验证方法转化为C#,以便与MVC模型一起使用),这些方法的工作方式与数据注释完全一样,在客户端和服务器端进行验证:[DataType(MyDataType)]或类似于验证DataAnnotation属性:[MyDataTypeValidation]
我不知道哪一种方法更适合我的验证“库”
例如,我有我的类FigurasDA,我想对这个属性进行自定义验证。
namespace MonitoreoIntegrado.Models
{
[MetadataType(typeof(FigurasDA))]
public partial class
我想使用下面提到的一系列自定义验证属性对输入模型应用验证。 如果第一验证属性即"ValidatorAttributeOne“的验证结果为真,则不需要处理"ValidatorAttributeTwo”验证逻辑。 为了获得"ValidationAttributeOne“分配给"validationContext.Items”字典有效结果,相信"validationContext“将在同一http请求中的不同"ValidationAttributes”之间共享,但在下面的行中总是抛出下面的异常 var isDependedFilterValidate
避免MVC-EFC和ErrorMessage返回的重复条目的最佳方法是什么?
Test.cs模型
public class Test
{
public int Id { get; set; }
[Required(ErrorMessage = "Select a Name")]
[StringLength(50, ErrorMessage = "Max 50 character")]
public string Name { get; set; }
[StringLength(100, ErrorMessage = &
我只想问一问,是否可以在创建模式下验证特定的数据,而不是在编辑模式下。
模型
public class FileModel
{
......
[Required(ErrorMessage = "You didn't select a file to upload")]
public IFormFile FileAttachment { get; set; }
}
控制器
[HttpPost]
public async Task<IActionResult> Edit(FileModel file)
if
我需要在教科书输入中强制执行一个动态的小数位数。我已经看到了使用属性属性和regex来强制设置小数位数的堆栈溢出的例子。
我的要求是动态的。@Html.TextBoxFor()是动态生成的,每个属性都有自己的十进制要求。因此,如果结果需要小数点3位,即使结果是1,也必须输入为1.000。但是,下一个结果可能需要5位小数,所以需要1.00000位。
财产是
List<Result> results
结果是
public class Result{
public float NumericResult;
public int DecimalPlaceRequired;
}
在MV
如何验证分配给下拉列表元素的值?通常,我会在模型中分配范围,并对该字段进行验证。然而,如果我有这样的东西,我不确定如何处理它。
模型
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Value { get; set; }
public DateTime Given { get; set; }
public TimeSpan TimeGiven { get; set; }
public string Phase
我试图验证一个模型,其中的规则并不总是相同的,并且依赖于模型中的其他属性。做这件事最好的方法是什么?例子如下:
假设示例1
在MVC 3中使用MVVM模式。我的(假设的) ViewModel如下所示:
public string OrderType { get; set; }
public string Requestor { get; set; }
public int NumberOfPeanuts { get; set; }
public int NumberOfJellyBeans { get; set; }
public int NumberOfAlmonds { get; set;
版本:
为了存档,我留下了这个问题,但我可能应该删除它。这完全是我的错,我做错了几件事。首先,我重用了RequiredIf验证中的代码,但是我应该删除_innerAttribute和我忘记删除的最内部的代码。最重要的是,我试图将枚举与字符串进行比较,这就是它失败的原因,但如果我将适当的枚举成员传递给构造函数,代码实际上工作得很好。我完全误解了对象的行为,演员们...
版本结束
我正在尝试编写一个自定义验证属性,如果一个字段不为空,则该属性不允许将另一个字段设置为特定值。我已经写了这个(我省略了实现IClientVAlidatable的部分)
public class NotAllowedIfN
在表单回发期间验证Umbraco SurfaceController中的模型时,我无法使用ModelState.AddModelError添加验证错误消息,以便向用户提供反馈。知道为什么吗?
我可以使用ModelState.AddModelError在[ChildActionOnly]渲染方法中没有问题。
[ChildActionOnly]
public ActionResult VerifyEmail(VerifyEmailModel model)
{
// This DOES work
ModelState.AddModelError("SomeProperty
我已经用新属性修改了UserRole实体。我需要验证用户登录,并根据这些属性生成基于角色的菜单。
public class ApplicationUserRole : IdentityUserRole
{
/// <summary>
/// Initializes a new instance of the <see cref="ApplicationUserRole"/> class.
/// </summary>
public ApplicationUserRole()
: base()
嗨,我有一个自定义验证属性:
public sealed class TestValidation : ValidationAttribute
{
public TestValidation ()
{
}
}
像这样使用它:
public class Test
{
[TestValidation]
public DateTime? DateUpdated { get; set;}
}
我有这样的JSON值:
{ "DateUpdated": "abcdefg" }
因为"abcdefg“不是有效的DateTime
是否可以在另一个属性的代码中测试另一个属性的存在?
假设您有以下类定义:
public class Inception {
[Required]
[MyTest]
public int Levels { get; set; }
}
public class MyTestAttribute : ValidationAttribute {
public override bool IsValid(object o){
// return whether the property on which this attribute
// i
我只想将条件所需的属性放在WEB 中。
示例
public sealed class EmployeeModel
{
[Required]
public int CategoryId{ get; set; }
public string Email{ get; set; } // If CategoryId == 1 then it is required
}
我正在通过(ActionFilterAttribute)使用模型状态验证
我目前有一个自定义的ValidationAttribute,可以确保属性是唯一的。它看起来是这样的:
public class UniqueLoginAttribute : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
Context db = new Context();
if (db.Users.SingleOrDefault(u
我有一个网站,人们可以在那里申请服务。他们选择他们喜欢的产品和选项,以及关于他们自己的信息。
模型分为几个部分:
public class ApplicationInformationModel
{
public int ProductType { get; set; }
public ClientModel Client { get; set; }
...
}
public class ClientModel {
public string Name { get; set; }
[AgeValidation]
public DateTime
我有这两个用于订阅的单选按钮。如果客户选择是单选按钮,那么我将显示输入电子邮件地址文本框。如果客户选择是,则电子邮件地址文本框是必填项。如何在模型中添加条件验证? 型号: public class CustomerModel
{
[Required]
public bool Subscribe {get; set;}
[RequiredIfYes]
public string Email {ger; set;}
} 自定义验证类: public class RequiredIfYesAttribute : Attribute
{
protected ov
我需要在一个模型中得到ApplicationDbContext。
我正在创建一个ValidationAttribute。该验证将检查数据库上的某些记录,并在必要时生成错误。
public class MyModel
{
public int? ID { get; set; }
[MyValidationForName]
public string Name { get; set; }
}
public class MyValidationForName : ValidationAttribute
{
protected ValidationResult IsValid(ob
public class Post {
// ... other properties here
public Author { get; set; }
}
public class Author {
// ... other properties here
public List<Post> Posts { get; set; }
}
这是一个过于简单的例子。我基本上想要的是Post类中的Author属性永远不会为空,它必须有一个值。但是因为我要从数据库中提取Author,所以我百分之百确定它是有效的,所以我想跳过对Author属性
我想实现Zero或小于零的验证,即用户不能将值设置为0或小于0。为此,我使用了以下代码:
public class PosNumberNoZeroAttribute : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
int getal;
if (int.TryParse(value.ToString(), out g
我正在为我的申请创建一个注册表格。我有一个字段必须是唯一的,并创建了一个自定义验证,以确保这一点。当我提交具有唯一值的表单时,页面不会更改或提交任何内容。到目前为止,我的ViewModel看起来像这样
public class RegisterViewModel
{
[Required]
[CustomValidation(AccountController, "checkifusernametaken", ErrorMessage = "In use already")]
[Display(Name = "Userna
与此相关
我已经创建了自己的DateValidationAttibute,以确保字符串采用有效的日期格式(例如,MM/DD/YYYY)
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false)]
public class DateValidationAttribute : DataTypeAttribute
{
public DateValidationAttribute() : base(DataType.Date){}
//MM/DD/YYYY, M
我们使用DataAnnotations来验证我们的模型。
我们的模型的一个非常简化的版本是:
public class Model
{
public List<Thing> Things;
}
public class Thing
{
[Required]
public string Name {get;set;}
}
现在,有趣的是,如果我创建一个没有名称的Thing并将它添加到模型中,我希望验证失败,但它通过了(震惊恐怖!)
var model = new Model ();
var invalidThing = new Thing (); // No
我有一个示例模式类:
public class Data
{
[Required]
[MinLength(1)]
public List<Foo> Foos{ get; set; }
}
传递给控制器:
[ApiController]
public class FooController : ControllerBase
{
public async Task<IActionResult> Post([FromBody] Data data)
{
// Do stuff
}
}
我在项目配置中启用了
我正在尝试创建一个自定义验证,上面写着:“如果otherValue为真,那么这个值必须大于0。我可以得到这个值,但按照我目前设置otherValue的方式,我只有属性的名称,没有值。可能是因为它是作为字符串传入的。这个属性将在5到6个不同的属性上,每次都会调用一个不同的otherValue。我在寻找有关如何获得otherValue的实际值(它是一个布尔值)的帮助。”
下面是我当前的代码:
public class MustBeGreaterIfTrueAttribute : ValidationAttribute, IClientValidatable
{
// get the rad