加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net 4.5 webforms模型绑定:支持客户端验证?

发布时间:2020-12-16 03:16:05 所属栏目:asp.Net 来源:网络整理
导读:我是使用数据注释的asp.net 4.5 webforms模型绑定的忠实粉丝. ASCX: asp:FormView ItemType="Contact" runat="server" DefaultMode="Edit" SelectMethod="GetContact" UpdateMethod="SaveContact" EditItemTemplate asp:ValidationSummary runat="server" I
我是使用数据注释的asp.net 4.5 webforms模型绑定的忠实粉丝.

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中的Webforms开箱即用?
或者我们应该依赖第三方库(DAValidation).是否可以将Html.EnableClientValidation()的优点移植到webforms?

问候,

巴特

解决方法

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

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

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

我们应用的一般想法是:

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读