相关疑难解决方法(0)

如何告知Data Annotations验证器还验证复杂的子属性?

验证父对象时是否可以自动验证复杂的子对象,并将结果包含在已填充的对象中ICollection<ValidationResult>

如果我运行以下代码:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace ConsoleApplication1
{
    public class Person
    {
        [Required]
        public string Name { get; set; }

        public Address Address { get; set; }
    }

    public class Address
    {
        [Required]
        public string Street { get; set; }

        [Required]
        public string City { get; set; }

        [Required]
        public string State { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Person person = new Person
            {
                Name = null,
                Address …
Run Code Online (Sandbox Code Playgroud)

c# validation data-annotations

38
推荐指数
3
解决办法
2万
查看次数

ASP.NET MVC 自定义多字段验证

我正在开发用于在 Visual Studio 2015 中进行验证的 ASP.NET MVC 5.2.3 自定义数据注释。它需要采用任意数量的字段并确保如果有一个值,它们都必须有一个值;如果它们都是空/空白,应该没问题。

一些例子有帮助:

但是,我不确定如何进行客户端验证,其中要验证的字段数量未知。

您如何使用接口GetClientValidationRules()方法的实现将其传递给客户端IClientValidatable

另外,如何将这个新的数据注释应用到我的视图模型上的属性?会是这个样子吗?

[MultipleRequired("AppNumber", "UserId", /* more fields */), ErrorMessage = "Something..."]
[DisplayName("App #")]
public int AppNumber { get; set; }

[DisplayName("User ID")]
public int UserId { get; set; }
Run Code Online (Sandbox Code Playgroud)

这是我使用MultipleRequiredAttribute自定义数据注释类所能得到的:

public class MultipleRequiredAttribute : ValidationAttribute, IClientValidatable
{
    private readonly string[] _fields;
    public MultipleRequiredAttribute(params string[] fields)
    {
        _fields = fields;
    }

    protected override ValidationResult IsValid(object value, …
Run Code Online (Sandbox Code Playgroud)

c# asp.net validation asp.net-mvc data-annotations

6
推荐指数
1
解决办法
6451
查看次数

在ASP MVC3中使用ViewModel中的[RequiredIf]

我在我的MVC应用程序中使用Simon Ince创建自定义RequiredIf属性.

我有一个viewmodel,它传递给视图,如下所示:

public class HistoryViewModel
{
    public Contact ContactModel { get; set; }
    public Account AccountModel { get; set; }
    public Person PersonModel { get; set; }
 }
Run Code Online (Sandbox Code Playgroud)

我有一堆带有所有道具的模型(即contact.cs,account.cs,person.cs)

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public bool IsAdult { get; set; }        
    [RequiredIf("IsAdult", "Yes", Errormessage="Please leave a comment")]
    public string Comments { get; set; }
 }
Run Code Online (Sandbox Code Playgroud)

RequiredIf通过viewmodel传递时,验证似乎不起作用.如果我将属性直接移动到viewmodel中,它可以正常. All other工作[必需]`属性通过视图模型从模型中工作.

那么我需要将所有属性移动到viewmodel中,它们需要RequiredIf吗?或者还有另一种方法吗?

validation jquery conditional asp.net-mvc-3

2
推荐指数
1
解决办法
6251
查看次数