Asp.net mvc 3 MVC3 C#从服务器端发送自定义验证消息

Asp.net mvc 3 MVC3 C#从服务器端发送自定义验证消息,asp.net-mvc-3,custom-validators,Asp.net Mvc 3,Custom Validators,你好。也许这是错误的方式,但这是最快的方式。因此: 我有一个模型,它将IP地址(网络掩码)存储为长(整数)(存储在mssql表中) 然后我需要实现输入和更正IP地址 我将未映射字段(IPv4NetworkMask)添加到模型中: [NotMapped] public string IPv4NetworkMask{ get{ return ExtIP.LongToIPv4(NetworkMask); } set

你好。也许这是错误的方式,但这是最快的方式。因此:

我有一个模型,它将IP地址(网络掩码)存储为长(整数)(存储在mssql表中) 然后我需要实现输入和更正IP地址 我将未映射字段(IPv4NetworkMask)添加到模型中:

    [NotMapped]
    public string IPv4NetworkMask{
        get{
            return ExtIP.LongToIPv4(NetworkMask);
        }
        set{
            NetworkMask=ExtIP.StringToIPv4(value);
        }
    }
进入视野:

        <div class="editor-label">
            @Html.LabelFor(model => model.NetworkMask)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.IPv4NetworkMask)
            @Html.ValidationMessageFor(model => model.IPv4NetworkMask)
        </div>
但在客户端,我得到一条消息:“值'fdgdfgdf'无效。”
如何将此消息更改为其他内容

我找到了最简单的方法:

@Html.ValidationMessageFor(model => model.IPv4NetworkMask, "You have entered incorrect IP")

如果您想在业务层上执行此操作,可以使用

例如:

public static ValidationResult ValidateIP(string inputIP)
{
   bool isValid = false;

    try {
        ExtIP.StringToIPv4(inputIP);
        isValid = true;
    }
    catch {
    }


    if (isValid)
    {
      return ValidationResult.Success;
    }
    else
    {
      return new ValidationResult(
          "Ip is not in a correct format.");
    }
  }

是的,我刚刚实现了自定义属性和数据注释。一些好的代码示例:
public static ValidationResult ValidateIP(string inputIP)
{
   bool isValid = false;

    try {
        ExtIP.StringToIPv4(inputIP);
        isValid = true;
    }
    catch {
    }


    if (isValid)
    {
      return ValidationResult.Success;
    }
    else
    {
      return new ValidationResult(
          "Ip is not in a correct format.");
    }
  }