2

我正在使用模型优先实体框架连接使用 Razor 处理 ASP.NET MVC4。我有一个从头开始制作的登录表单,请求用户名、密码和用户类型。不幸的是,即使字段为空白,表单也可以发布,这会导致抛出异常。

由于我通过模型直接映射到我的数据库,而不是使用 Models 文件夹中的类,因此我无法应用 DataAnnotations。是否有另一种方法来强制执行表单验证以避免发送空值?

4

2 回答 2

1

在我看来,您通常所做的事情是错误的,仅依靠客户端验证并不是一个好方法,因为它取决于客户端,在 MVC 中,模型太重要了,为什么不使用它们呢?顺便说一句,我认为您应该为您的案例使用 ViewModel

于 2013-09-06T07:38:52.067 回答
1

由于您不能使用该[Required]属性,您可能希望使用客户端验证。如果您正在使用HTML5,您可以将字段标记为required,您可以制作一个自定义助手来输出如下内容:

<input id="username" type="text" required />

如此处所示(没有辅助方法):

http://jsfiddle.net/ck4dL/

JavaScript您还可以通过手动验证用户输入。

<input id="username" type="text" />
<button id="submitx" onclick="validate()">Click</button>

function validate() {
    var username = document.getElementById("username");
    alert(username.value);
    if (username.value === "") {
        alert('Please fill in the username field');
    }
}

或使用预建库,例如jQuery validate

作为附加说明,最好也在服务器级别检查这些字段。您的用户可能禁用了 JavaScript,或者可能故意发送格式错误的信息。

于 2013-09-06T07:32:55.057 回答