gpt4 book ai didi

asp.net 4.5 webforms模型绑定(bind): client side validation supported?

转载 作者:行者123 更新时间:2023-12-04 21:43:35 24 4
gpt4 key购买 nike

我是使用数据注释的 asp.net 4.5 webforms 模型绑定(bind)的忠实粉丝。

ascx:

     <asp:FormView ItemType="Contact" runat="server" DefaultMode="Edit" 
SelectMethod="GetContact" UpdateMethod="SaveContact">
<EditItemTemplate>

<asp:ValidationSummary runat="server" ID="valSum" />

Firstname: <asp:TextBox runat="server" ID="txtFirstname" Text='<%#: BindItem.Firstname %>' />


Lastname: <asp:TextBox runat="server" ID="txtLastname" Text='<%#: BindItem.Lastname %>' />

Email: <asp:TextBox runat="server" ID="txtEmail" Text='<%#: BindItem.Email %>' />

<asp:Button ID="Button1" runat="server" Text="Save" CommandName="Update" />
</EditItemTemplate>
</asp:FormView>

。CS:
    public void SaveContact(Contact viewModel)
{
if (!Page.ModelState.IsValid)
{
return;
}
}

public Contact GetContact()
{
return new Contact();
}

模型:
    public class Contact
{
[Required]
[StringLength(10, ErrorMessage="{1} tis te lang")]
public string Firstname { get; set; }

[Required]
[StringLength(10)]
public string Lastname { get; set; }

[Required]
[EmailAddress]
public string Email { get; set; }

}

问题:

像 MVC 这样的 Web 表单是否支持开箱即用的客户端验证?
或者我们应该依赖第三方库(DAValidation)。是否可以将 Html.EnableClientValidation() 的优点移植到 webforms ?

问候,

巴特

最佳答案

正如我们在 ASP.NET WebForms 项目中发现的那样,对于客户端验证,模型的验证属性没有总体上有用的重用。

例如,联系人数据模型,具有各种属性,如姓名、电子邮件、生日等......并不总是以相同的方式使用。有时它可能有一些必填字段,有时没有,甚至所需的输入数据在应用程序的各个点也可能不同。

因此,在我们的项目中,我们同时使用客户端验证实现和模型属性。

我们应用的总体思路是:

  • 在客户端,我们希望尽可能具体,以避免不必要的回发,并为用户提供即时、具体的响应。
  • 在服务器端,我们应用模型属性以及更多的数据库和面向业务的验证规则,但并没有那么具体地失败。另外,如果需要,当某些字段相互依赖时,确实会进行一些“属性间”验证。

  • 对于客户端,我们选择了 jQuery Validate Plugin ( http://jqueryvalidation.org/)。

    我们甚至构建了自己的一组控件(派生自内置 WebControls),它们呈现各种(甚至一些自定义)数据规则。

    关于asp.net 4.5 webforms模型绑定(bind): client side validation supported?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19925239/

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