2011-09-01 16 views
0

私は、テキストボックスの値をフィルタリングする必要があります。つまり、ユーザーが入力した悪い単語を削除する必要があります。ユーザーが悪い言葉を入力して[送信]ボタンをクリックすると、アクションが呼び出されます。モデルのどこか(どこでも)私は悪い言葉を削除し、フィルタリングされた値をモデルに戻して戻すことができるはずです。ASP.NET MVCのテキストボックスの悪い言葉をフィルタリングする方法は?

どうすればいいですか?

+0

サーバーまたはクライアントソリューションのみをお探しですか? –

答えて

0

解決策をMVC 3に更新することができれば、解決は簡単です。コントローラーに単語チェックを実装して、悪い単語に対して検証されるべきプロパティにRemoteAttributeを適用するだけです。 1つのメソッドと1つの属性で目立たないAjaxチェックとサーバー側のチェックが行われます。例:

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 / –

関連する問題