Asp.net mvc 3 MVC3 C#从服务器端发送自定义验证消息
你好。也许这是错误的方式,但这是最快的方式。因此: 我有一个模型,它将IP地址(网络掩码)存储为长(整数)(存储在mssql表中) 然后我需要实现输入和更正IP地址 我将未映射字段(IPv4NetworkMask)添加到模型中: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
[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.");
}
}