gpt4 book ai didi

c# - 必需的 DataAnnotations 需要 BeginForm 才能在 MVC5 中触发验证

转载 作者:太空宇宙 更新时间:2023-11-03 21:10:29 24 4
gpt4 key购买 nike

是否需要把所有的控件都写在里面

@using (Html.BeginForm())    
{
// HTML Elements and HTML Helpers.
}

同时使用 [Required] DataAnnotations ?

我在基于 MVC5 的应用程序中遇到了奇怪的问题。问题是我在模型中使用了一个名为例如“Credit”的属性,并且该属性的数据类型是整数,并且在该属性之上设置了 [Required] DataAnnotations。

但是我没有用过Begin形式。所以在这种情况下验证不会触发。而如果我编写 BeginForm,则验证有效。

那么,是否有必要将所有 html 元素和 html 助手放在 BeginForm 中以验证控件?

谢谢
-Nimesh。

最佳答案

如果您希望客户端验证起作用,那么是的,表单控件等需要在 <form> 中。标签(由 HTML.BeginForm 助手生成)。不管怎样,服务器端验证仍然有效。

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

关于c# - 必需的 DataAnnotations 需要 BeginForm 才能在 MVC5 中触发验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38075756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com