【问题标题】:How do I specify error member key in ASP.NET MVC CustomValidation?如何在 ASP.NET MVC 自定义验证中指定错误成员键?
【发布时间】:2011-03-24 07:20:45
【问题描述】:

我正在尝试添加 CustomValidation 并使其返回错误

Html.ValidationMessageFor(m => m.SubleaseCompany)

[CustomValidation(typeof(CreateSpaceModelValidation), "ValidateCreateSpaceModel")]
public class CreateSpaceModel
{
    public Building Building { get; set; }
    public Space Space { get; set; }

    public string SubleaseCompany { get; set; }
}

public class CreateSpaceModelValidation
{
    public static ValidationResult ValidateCreateSpaceModel(CreateSpaceModel model)
    {
        return new ValidationResult("You should specify Sublease Contact", new[] { "SubleaseCompany" }).;
    }
}

我正在为 ValidationResult 构造函数 (memberNames) 使用第二个参数,但这似乎不起作用。

【问题讨论】:

  • 你最终采取了什么路线?

标签: asp.net asp.net-mvc validation


【解决方案1】:

看起来 MVC 团队从未实现过 MemberNames 参数的功能。 看下面的从....http://devtrends.co.uk/blog/the-complete-guide-to-validation-in-asp.net-mvc-3-part-2

在某些情况下,您可能会 试图使用第二个构造函数 ValidationResult 的重载 接受一个 IEnumerable 成员名称。例如,您可以 决定要显示 两个字段上的错误消息是 比较,因此您将代码更改为 这个:

return new ValidationResult(
    FormatErrorMessage(validationContext.DisplayName),

new[] { 验证上下文.MemberName, 其他属性 });

如果你运行你的代码,你会发现 完全没有区别。这是 因为虽然这个重载是 存在并可能在别处使用 在 .NET 框架中,MVC 框架完全忽略 ValidationResult.MemberNames。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 2014-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多