2011-09-01 5 views
0

나는 텍스트 상자 값을 필터링하고 싶습니다. 즉, 사용자가 입력 한 나쁜 단어를 제거해야한다는 요구 사항이 있습니다. 사용자가 나쁜 단어를 입력하고 제출 버튼을 클릭하면 작업이 호출됩니다. 어딘가에 모델 (모든 장소)에서 나는 나쁜 단어를 제거하고 다시 필터링 된 값을 모델에 다시 바인딩 할 수 있어야합니다.ASP.NET MVC에서 텍스트 상자의 잘못된 단어를 필터링하는 방법은 무엇입니까?

어떻게하면됩니까?

+0

서버 또는 클라이언트 솔루션을 찾으십니까? –

답변

0

솔루션을 MVC 3으로 업데이트 할 수 있다면 솔루션은 간단합니다. 컨트롤러에 단어 검사를 구현 한 다음 잘못된 단어에 대해 유효성을 검사해야하는 속성에 RemoteAttribute을 적용하면됩니다. 하나의 메소드와 하나의 속성으로 눈에 띄지 않는 아약스 체크와 서버 사이드 체크를 얻을 수 있습니다. 예 :

public class YourModel 
{ 
    [Remote("BadWords", "Validation")] 
    public string Content { get; set; } 
} 

public class ValidationController 
{ 
    public JsonResult BadWords(string content) 
    { 
     var badWords = new[] { "java", "oracle", "webforms" }; 
     if (CheckText(content, badWords)) 
     { 
      return Json("Sorry, you can't use java, oracle or webforms!", JsonRequestBehavior.AllowGet); 
     } 
     return Json(true, JsonRequestBehavior.AllowGet); 
    } 

    private bool CheckText(string content, string[] badWords) 
    { 
     foreach (var badWord in badWords) 
     { 
      var regex = new Regex("(^|[\\?\\.,\\s])" + badWord + "([\\?\\.,\\s]|$)"); 
      if (regex.IsMatch(content)) return true; 
     } 
     return false; 
    } 
} 
+0

그러나 현재 프로젝트가 MVC2에 있으며 MVC3으로 마이그레이션 할 수 없습니다. 내가 나쁜 말을 걸러 낼 수있는 다른 방법이 있습니까? – nimi

+0

왜 마이 그 레이션 할 수 없습니까? 대안이 있지만 그때 당신은 당신의 자신을 구현해야합니다 ...하지만 열심히해서는 안됩니다. ASP.NET MVC3에서 사용자 지정 유효성 검사에 대해 블로그에 올렸습니다. MVC2 용으로 사용할 수 있습니다. http://blog.tomasjansson.com/2011/08/creating-custom-unobtrusive-file-extension-validation-in -asp-net-mvc-3 및 jquery / –

관련 문제