Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC4中的自定义模型验证_C#_Validation_Asp.net Mvc 4_Model - Fatal编程技术网

C# MVC4中的自定义模型验证

C# MVC4中的自定义模型验证,c#,validation,asp.net-mvc-4,model,C#,Validation,Asp.net Mvc 4,Model,我正在使用Asp.net MVC4。我有一些实体和每个实体的一些规则,我需要从控制器验证并显示 当前对应的错误消息。我正在尝试设计一个通用的验证类,它可以用于我正在使用的所有实体。如果我打电话 验证它应该返回验证成功或验证错误列表。我将传递实体及其类型 一些示例实体和规则 Employee - Employee should have either middle name or last name - First name, Middle name, last

我正在使用Asp.net MVC4。我有一些实体和每个实体的一些规则,我需要从控制器验证并显示 当前对应的错误消息。我正在尝试设计一个通用的验证类,它可以用于我正在使用的所有实体。如果我打电话 验证它应该返回验证成功或验证错误列表。我将传递实体及其类型

一些示例实体和规则

    Employee - Employee should have either middle name or last name
             - First name, Middle name, last name should not be same
             - Should have address id and it should present in address table
             ......
             ......

     Address - In address line if there is an opening bracket it should have a matching closing bracket
             - If user give map url and it doesnt contains "http://" should show error message
            .......
            .......
我在一个资源文件中包含所有错误消息,错误类型id为


请告诉我应该采取哪种方法?或者与我分享一些web教程链接,这些链接将帮助我设计此

您研究过远程验证吗?这可能是一个很好的例子,说明你正在努力实现的目标,因为你有一些复杂的规则

一些示例代码:

public class ValidationController : Controller 
{

  public JsonResult IsAddressValid(string Address) 
  {

     //if Address is valid
     return Json(true, JsonRequestBehavior.AllowGet);

    //else

   return Json("Address Not valid", JsonRequestBehavior.AllowGet);

  }
}
然后在你的模型上

public class SignupModel
{
    [Required]
    [Remote("IsAddressValid", "Validation")]
    public string Address{ get; set; }
}

我将在这里向您推荐或观看: