我有一個要求,我想過濾文本框的值,即應該刪除用戶輸入的壞詞。一旦用戶輸入不好的單詞並點擊提交按鈕,就會調用操作。在模型的某個地方(任何地方),我應該能夠刪除不好的單詞,並將過濾後的值重新綁定回模型。如何篩選ASP.NET MVC中文本框的錯誤字詞?
我該怎麼做?
我有一個要求,我想過濾文本框的值,即應該刪除用戶輸入的壞詞。一旦用戶輸入不好的單詞並點擊提交按鈕,就會調用操作。在模型的某個地方(任何地方),我應該能夠刪除不好的單詞,並將過濾後的值重新綁定回模型。如何篩選ASP.NET MVC中文本框的錯誤字詞?
我該怎麼做?
如果您可以更新解決MVC 3解決方案是微不足道的。只需在控制器中執行單詞檢查,然後將RemoteAttribute
應用於應該針對不良單詞進行驗證的屬性。你將得到一個不引人注目的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淨MVC-3 - 和 - 的jquery / –
您是在尋找服務器還是僅在客戶端解決方案? –