我有一个要求,我想过滤文本框值,即应该删除用户输入的坏词。一旦用户输入坏词并单击提交按钮,就会调用操作。在模型中的某个地方(任何地方)我应该能够删除坏词并将过滤后的值重新绑定回模型。
我怎样才能做到这一点?
我有一个要求,我想过滤文本框值,即应该删除用户输入的坏词。一旦用户输入坏词并单击提交按钮,就会调用操作。在模型中的某个地方(任何地方)我应该能够删除坏词并将过滤后的值重新绑定回模型。
我怎样才能做到这一点?
如果您可以将解决方案更新到 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;
}
}