我正在使用模型优先实体框架连接使用 Razor 处理 ASP.NET MVC4。我有一个从头开始制作的登录表单,请求用户名、密码和用户类型。不幸的是,即使字段为空白,表单也可以发布,这会导致抛出异常。
由于我通过模型直接映射到我的数据库,而不是使用 Models 文件夹中的类,因此我无法应用 DataAnnotations。是否有另一种方法来强制执行表单验证以避免发送空值?
我正在使用模型优先实体框架连接使用 Razor 处理 ASP.NET MVC4。我有一个从头开始制作的登录表单,请求用户名、密码和用户类型。不幸的是,即使字段为空白,表单也可以发布,这会导致抛出异常。
由于我通过模型直接映射到我的数据库,而不是使用 Models 文件夹中的类,因此我无法应用 DataAnnotations。是否有另一种方法来强制执行表单验证以避免发送空值?
在我看来,您通常所做的事情是错误的,仅依靠客户端验证并不是一个好方法,因为它取决于客户端,在 MVC 中,模型太重要了,为什么不使用它们呢?顺便说一句,我认为您应该为您的案例使用 ViewModel
由于您不能使用该[Required]
属性,您可能希望使用客户端验证。如果您正在使用HTML5
,您可以将字段标记为required
,您可以制作一个自定义助手来输出如下内容:
<input id="username" type="text" required />
如此处所示(没有辅助方法):
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,或者可能故意发送格式错误的信息。