ASP.NET MVC中如何过滤文本框的坏词?

发布于 2024-12-02 04:39:54 字数 115 浏览 1 评论 0原文

我有一个要求,我想过滤文本框值,即应该删除用户输入的坏词。一旦用户输入不良词语并单击提交按钮,就会调用操作。在模型的某个地方(任何地方),我应该能够删除坏词并将过滤后的值重新绑定回模型。

我该怎么做?

I have a requirement in which i wanna filter the textbox value, that is should remove the bad words entered by the user. Once the user enters the bad words and click on submit button, action is invoked. Somewhere in the model(any place) i should be able to remove the bad words and rebind the filtered value back to the model.

How can i do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

明天过后 2024-12-09 04:39:54

如果您可以将解决方案更新到 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;
    }
}

If you can update the solution to MVC 3 the solution is trivial. Just implement the word check in a controller and then apply the RemoteAttribute on the property that should be validated against bad words. You will get an unobtrusive ajax check and server side check with just one method and one attribute. Example:

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;
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文