代码之家  ›  专栏  ›  技术社区  ›  griegs

在jQuery回发最佳实践中验证电子邮件地址

  •  1
  • griegs  · 技术社区  · 14 年前

    这个问题的标题可能是措辞不好,所以请随意调整。

    在我的MVC应用程序中,我有一个自定义属性,我用它来修饰email字段,然后它要么通过模型,要么不通过模型。

    在一个pge上,虽然我允许用户提交评论,但我通过ajax提交,所以不做完整的回发,也没有模型验证。

    还有别的办法吗?我可以在ajax回发中创建模型并在那里验证它,然后返回带有错误消息的部分视图吗?

    还是有别的办法?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Rob    14 年前

    你说。。。

    所以我想验证地址,但不复制代码。我还想避免将代码从验证器中分离到另一个类中,或者这是最好的方法吗?

    public class EmailAttribute : RegularExpressionAttribute
    {
      public EmailAttribute() :
        base(RegExUtility.SingleEmailAddressPattern)
      {
        ErrorMessage = "Please enter a valid email address";
      } 
    

    public static class RegExUtility
    {
      public const SingleEmailAddressPattern = @"...";
    
      public static bool IsValidSingleEmailAddress(string email)
      {
         return Regex.IsMatch(email, SingleEmailAddressPattern);
    

    对于简单的Ajax回发操作,我认为您通常可以在控制器中处理它,或者创建一个单独的POCO ViewModel来支持Ajax路径。我知道有关于对两种类型的操作使用相同模型的文章,但是我们发现通常有足够的差异,因此有必要使用单独的视图模型。如果它们足够复杂的话,我们就把公共代码分解出来。