私は、テキストボックスの値をフィルタリングする必要があります。つまり、ユーザーが入力した悪い単語を削除する必要があります。ユーザーが悪い言葉を入力して[送信]ボタンをクリックすると、アクションが呼び出されます。モデルのどこか(どこでも)私は悪い言葉を削除し、フィルタリングされた値をモデルに戻して戻すことができるはずです。ASP.NET MVCのテキストボックスの悪い言葉をフィルタリングする方法は?
どうすればいいですか?
私は、テキストボックスの値をフィルタリングする必要があります。つまり、ユーザーが入力した悪い単語を削除する必要があります。ユーザーが悪い言葉を入力して[送信]ボタンをクリックすると、アクションが呼び出されます。モデルのどこか(どこでも)私は悪い言葉を削除し、フィルタリングされた値をモデルに戻して戻すことができるはずです。ASP.NET MVCのテキストボックスの悪い言葉をフィルタリングする方法は?
どうすればいいですか?
解決策を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;
}
}
しかし、私の現在のプロジェクトは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 / –
サーバーまたはクライアントソリューションのみをお探しですか? –