나는 텍스트 상자 값을 필터링하고 싶습니다. 즉, 사용자가 입력 한 나쁜 단어를 제거해야한다는 요구 사항이 있습니다. 사용자가 나쁜 단어를 입력하고 제출 버튼을 클릭하면 작업이 호출됩니다. 어딘가에 모델 (모든 장소)에서 나는 나쁜 단어를 제거하고 다시 필터링 된 값을 모델에 다시 바인딩 할 수 있어야합니다.ASP.NET MVC에서 텍스트 상자의 잘못된 단어를 필터링하는 방법은 무엇입니까?
어떻게하면됩니까?
나는 텍스트 상자 값을 필터링하고 싶습니다. 즉, 사용자가 입력 한 나쁜 단어를 제거해야한다는 요구 사항이 있습니다. 사용자가 나쁜 단어를 입력하고 제출 버튼을 클릭하면 작업이 호출됩니다. 어딘가에 모델 (모든 장소)에서 나는 나쁜 단어를 제거하고 다시 필터링 된 값을 모델에 다시 바인딩 할 수 있어야합니다.ASP.NET MVC에서 텍스트 상자의 잘못된 단어를 필터링하는 방법은 무엇입니까?
어떻게하면됩니까?
솔루션을 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;
}
}
그러나 현재 프로젝트가 MVC2에 있으며 MVC3으로 마이그레이션 할 수 없습니다. 내가 나쁜 말을 걸러 낼 수있는 다른 방법이 있습니까? – nimi
왜 마이 그 레이션 할 수 없습니까? 대안이 있지만 그때 당신은 당신의 자신을 구현해야합니다 ...하지만 열심히해서는 안됩니다. ASP.NET MVC3에서 사용자 지정 유효성 검사에 대해 블로그에 올렸습니다. MVC2 용으로 사용할 수 있습니다. http://blog.tomasjansson.com/2011/08/creating-custom-unobtrusive-file-extension-validation-in -asp-net-mvc-3 및 jquery / –
서버 또는 클라이언트 솔루션을 찾으십니까? –