2012-11-15 3 views
4

FluentValidation이있는 간단한 모델을 만들었지 만 작동하지 않는 것 같습니다.FluentValidation을 MVC4에 통합하는 방법

  • 내 데이터베이스가 비어 이름으로 업데이트하고 통과 TryUpdateModel()
  • 내가 Application_Start()FluentValidationModelValidatorProvider.Configure();를 추가하는 시도

내 양식을 제출할 때 클라이언트 측 유효성 검사 오류를 얻을 수 없지만 그것은 클래스를 사용하여 추가 한 경우에도 FluentValidationModelValidatorProvider을 찾을 수 없다는 것을 보여줍니다. 나는 또한 내 모델 클래스 위에 [Validator(typeof(Category))]을 추가하려고 시도했지만 아무 것도하지 않았다. This 우리가 정보를 찾고있는 자원. 당신이 FluentValidation.Mvc 참조가없는 것 같은

모델

public class Category 
{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
    virtual public ICollection<Image> Images { get; set; } 
} 

public class CategoryValidator : AbstractValidator<Category> 
{ 
    public CategoryValidator() 
    { 
     RuleFor(x => x.Name).NotEmpty().WithMessage("Category name is required."); 
    } 
} 

컨트롤러

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult Edit(Category c) 
{ 
    var category = _db.Categories.Where(x => x.ID == c.ID).SingleOrDefault(); 
    if (category == null) return HttpNotFound(); 

    // Update model and return to category list 
    if (TryUpdateModel(category)) // it passes with empty name and saves changes 
    { 
     _db.SaveChanges(); 
     return RedirectToAction("index", "category"); 
    } 

    // Something is wrong, return view back 
    return View(c); 
} 
+0

작동하지 않는 using 문은 무엇입니까? – jrummell

+0

@jrummell'FluentValidation;을 사용합니다. – sed

+0

'FluentValidation.Mvc;를 사용하십시오. – jrummell

답변

7

소리가 난다. FluentValidation.MVC4 NuGet 패키지를 설치하십시오.

다음 MVC instructions을 따르십시오.

+0

내가 찾고 있던 바로 그 유형의 세부 정보는 모든 사람들에게 쉽고 포괄적이라고 주장하는 많은 자습서와 가이드에서 빠져 있습니다. –