javascript - 当从客户端向服务器发送信息时,我是否在客户端或服务器端(或两者)强制执行规则?

标签 javascript c# asp.net asp.net-mvc http-post

我的问题是关于什么是必要的和/或最佳实践。

假设,例如,我需要从 Controller 输入一些文本,并且该文本不能为空。

<form action="BaHumBug/Index" method="post" id="xmasTextForm">
    <input name="xmasText" type="text" id="xmasTextInput" />
</form>

我是否在客户端强制执行无空文本的规则

$('#xmasTextForm').submit(function(ev) {
{
    if ($('#xmasTextForm').val().isWhiteSpace())
    {
        alert("Fill the input with something, dude!");
        return false;
     }
}

或者服务器端

[HttpPost]
    public ActionResult Index (string xmasText)
    {
        if (xmasText.IsWhiteSpace())
        {
             // ....
    }

或者我同时做两层保护吗?还是选择取决于其他因素?

最佳答案

至少在 Controller 上进行验证始终是一个好习惯,这样您就可以确保您的应用程序不会接收到无效数据。

客户端的验证也很重要,因为当客户端以错误的方式获取您的表单时,您可以为客户提供良好的反馈。

对代码和 Controller 的良好设计有很大帮助的一件事是应用 TDD(测试驱动开发方法),如果您熟悉,可以访问此 link以获得更多信息。

通过测试,您可以通过理解和考虑对可能拥有的输入情况的良好覆盖来设计您的应用程序。

关于javascript - 当从客户端向服务器发送信息时,我是否在客户端或服务器端(或两者)强制执行规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30518863/

相关文章:

javascript - 使用 z-index 在其他元素后面显示元素不起作用

c# - 如果 C# 比 C++ 慢,为什么还要使用它?

asp.net - Gridview 未在绑定(bind)期间设置在第一页

c# - 如何在 .NET 中修复 'Authentication to host for user using method ' mysql_native_password' failed with message : Reading from the stream has failed.'

javascript - Angular Controller 功能放置

javascript - 过滤按日期构造的javascript对象

javascript - 如何使用 setInterval 和 HTML5 Canvas 解决无响应的重绘和控件问题

c# - 如何让Tesseract OCR以句子形式输出单词?

c# - 来自开放 API 的 .Net 解析器 JSON

javascript - 如何使用 URL 重写在 javascript 中访问 REAL querystring 参数