2012-02-03 78 views
0

我一直在尋找一種簡單的方法來控制在表單中輸入的數據,我來到了這個解決方案,我可以使用可用於ASP.NET六種不同的驗證服務器控件:驗證ASP.NET服務器控件

的RequiredFieldValidator

CompareValidator

RangeValidator控件

的RegularExpressionValidator

的CustomValidator

的ValidationSummary

但爲了使用這些控件我必須包括在控制標籤和表單標籤RUNAT =「服務器」。

的問題是,當我想指定「形式」標籤的「動作」屬性的控制器動作,它給我的錯誤:

服務器標記不能包含<%...%>構造

有沒有辦法使用這些控件,並在提交後調用控制器操作?

這裏是我的代碼:

<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

這看起來像一個非常混亂的場景。您描述了一個MVC項目,但您正在使用Web窗體控件。

如果您使用的是MVC,我會用標準HTML控件替換.net控件,並使用數據註釋進行驗證。 See here for information

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

+0

感謝Digbyswift,是的,我使用的是MVC,而且我錯誤地使用了數據註釋,感謝您的幫助。 – nafiseh 2012-02-03 12:42:38