我一直在寻找一种简单的方法来控制表单中输入的数据,我来到这个解决方案,我可以使用六种不同的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>
<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>
答案 0 :(得分:1)
这看起来像一个非常混乱的场景。您描述了一个MVC项目,但您正在使用Web表单控件。
如果您正在使用MVC,我会使用标准HTML控件替换.net控件,并使用数据注释进行验证。 See here for information
在MVC中,不需要runat="server"
用于任何事情。