验证ASP.NET服务器控件

时间:2012-02-03 12:18:52

标签: asp.net-mvc

我一直在寻找一种简单的方法来控制表单中输入的数据,我来到这个解决方案,我可以使用六种不同的ASP.NET验证服务器控件:

的RequiredFieldValidator

CompareValidator

RangeValidator控件

的RegularExpressionValidator

的CustomValidator

的ValidationSummary

但是为了使用这些控件,我必须在控件标签和表单标签中包含runat =“server”。

问题是当我想在“form”标签的“action”属性中指定控制器动作时,它给出了错误:

服务器代码不能包含<%...%>构建体

有没有办法使用这些控件并在提交后调用控制器操作?

这是我的代码:

<form name="register" action="<%: Url.Action("LogOn","Account") %>"  runat="server">          
    <div class="form_row">
        <label class="contact"><strong>Username:</strong></label>
        <asp:TextBox id="UserName" runat="server" type="text" class="contact_input"></asp:TextBox>
            &nbsp;
        <asp:RequiredFieldValidator id="RequiredFieldValidator1"  
            runat="server" ErrorMessage="Required!" 
            ControlToValidate="UserName">
        </asp:RequiredFieldValidator>
    </div>  

    <div class="form_row">
        <label class="contact"><strong>Password:</strong></label>
        <input id = "Password" name = "Password" type="password" class="contact_input" />
        <asp:RequiredFieldValidator id="RequiredFieldValidator1"  
            runat="server" ErrorMessage="Required!" 
            ControlToValidate="Password">
        </asp:RequiredFieldValidator>
    </div>                     

    <div class="form_row">
        <div class="terms">
            <input id = "RememberMe"  type="checkbox" name="terms" />
            Remember me
        </div>
    </div> 

    <div class="form_row">
        <input type="submit" class="register" value="login" />
    </div>   

</form>

1 个答案:

答案 0 :(得分:1)

这看起来像一个非常混乱的场景。您描述了一个MVC项目,但您正在使用Web表单控件。

如果您正在使用MVC,我会使用标准HTML控件替换.net控件,并使用数据注释进行验证。 See here for information

在MVC中,不需要runat="server"用于任何事情。