1

我必须编写自定义属性来使用 MVC 模式检查依赖属性。我正在使用 System.ComponentModel.DataAnnotations 来检查必填字段。我的 WPF 应用程序包含列表视图控件。第一次加载视图时,我在模态类中编写的所有属性都会填充到列表视图中。我正在提供用户可以在列表视图中包含/排除新属性的功能。但是我不想让用户排除其他属性所依赖的那些属性。

例如,如果 securitynumber 属性依赖于 employeename 属性。在排除员工姓名时,我想显示“安全号码取决于员工姓名,因此不能排除员工姓名”的验证消息

我需要帮助编写和使用自定义属性,例如

[Dependencyon("Employeename")]
public object securitynumber { get ;set ;}

并希望在我需要的任何地方获得“Dependencyon”的价值。

4

2 回答 2

2

你有三个选择:

A)您可以使用 CustomValidationAttribute 并提供自定义构建的验证器。

http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.customvalidationattribute.validatortype(v=vs.95).aspx

B) 您可以创建一个继承自 ValidationAttribute 的类。

http://msdn.microsoft.com/en-us/library/cc668224.aspx

C)如果您只想在 MVC 操作上执行此操作,您可以根据 gordatron 的响应创建一个 ActionFilterAttribute。

于 2012-05-02T12:17:23.087 回答
1

我猜你正在寻找创建一个自定义过滤器。它已经有一段时间了,但从记忆中我认为它会是这样的:

public class Dependencyon : ActionFilterAttribute {

    string field;

    public Dependencyon (string field){
        this.field = field;
    }

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        //check whether field is populated and redirect if not?    
    }
}

这是 ActionFilters 的入门:

http://www.asp.net/mvc/tutorials/older-versions/controllers-and-routing/understanding-action-filters-cs

(我不记得有关这些构造函数参数的详细信息,所以我可能离题了..对不起,但我想尝试不会花很长时间)

于 2012-05-02T12:04:06.450 回答