在 MVC 中编写自定义属性时需要帮助

本文关键字:帮助 自定义属性 MVC | 更新日期: 2023-09-27 18:32:59

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

例如,如果安全号码属性依赖于雇员名称属性。排除员工姓名时,我想显示验证消息"安全号码取决于员工姓名,因此无法排除员工姓名"

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

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

并希望在我需要的任何地方获得"依赖"的值。

在 MVC 中编写自定义属性时需要帮助

您有三个选择:

答:您可以使用 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。

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

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

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