是否有必要编写并将所有控件放在
中@using (Html.BeginForm())
{
// HTML Elements and HTML Helpers.
}
使用[必需] DataAnnotations?
我在基于MVC5的应用程序中遇到了奇怪的问题。问题是我在模型中使用了一个名为例如“Credit”的属性,并且该属性的数据类型是整数,并在该属性上方设置[Required] DataAnnotations。
但我没有使用过Begin表单。所以在这种情况下验证不会触发。如果我写BeginForm然后验证工作。
所以,是否有必要放置所有html元素&在BeginForm中使用html帮助来验证控件?
谢谢你 -Nimesh。
答案 0 :(得分:3)
如果您希望客户端验证起作用,那么表单控件等需要在<form>
标记内(由HTML.BeginForm帮助程序生成)。无论如何,服务器端验证仍然有效。
与上面的评论者一样,我会问你为什么要首先在表单标签之外设置控件。即使您计划使用Ajax提交数据,使用表单标记也是更好的语义设计,因为它清楚哪些数据项属于一起,并且它还使收集数据更容易通过ajax提交(例如,如果你有jQuery,你可以使用$("#myForm").serialize()
自动从表单中的所有控件中收集值并将其传递给ajax请求。)
答案 1 :(得分:1)
当我们将一些数据发布到服务器时,我们需要验证一些内容。要将一些数据发布到服务器,您需要使用表单标记,无论您使用的是BeginForm()
还是<form>
标记。您需要表单中的标签,这些标签将由服务器验证。
我想,这会给你问题的答案。享受!