Required DataAnnotations需要BeginForm在MVC5中触发验证

本文关键字:验证 MVC5 DataAnnotations 需要 BeginForm Required | 更新日期: 2023-09-27 17:52:51

有必要将所有控件都放在

里面吗?
@using (Html.BeginForm())    
{
    // HTML Elements and HTML Helpers.
}

当使用[Required] DataAnnotations时?

我在基于MVC5的应用程序中面临奇怪的问题。问题是,我在模型中使用了一个名为"Credit"的属性,该属性的数据类型是整数,并在该属性上方设置[Required] DataAnnotations。

但是我没有使用Begin形式。在这种情况下,验证不会触发。而如果我写BeginForm,那么验证工作。

那么,有必要把所有的html元素&在BeginForm内部的html帮助程序验证控件?

谢谢
-Nimesh .

Required DataAnnotations需要BeginForm在MVC5中触发验证

如果您希望客户端验证工作,那么是的,表单控件等需要在<form>标记内(由HTML生成)。BeginForm助手)。无论如何,服务器端验证仍然可以工作。

就像上面的评论者一样,我想问你为什么要在表单标签之外有控件。即使你打算使用Ajax提交数据,使用表单标签也是更好的语义设计,因为它清楚哪些数据项属于一起,并且它也使通过Ajax收集数据更容易(例如,如果你有jQuery,你可以使用$("#myForm").serialize()自动收集表单内所有控件的值并将其传递给Ajax请求)。

当我们向服务器发布一些数据时,我们需要验证一些东西,对吧?为了将一些数据发布到服务器,您将需要表单标签,无论您使用BeginForm()还是<form>标签。您需要表单中的标签,这些标签将被服务器验证。

我想这就是你问题的答案了。享受吧!