고급 검색 양식의 유효성을 검사해야하지만 데이터 주석을 사용할 수 없도록 두 테이블의 다른 사용자 및 문서로 보낼 데이터가 있습니다. 이름을 문자로만 확인하고 계좌 번호는 &이며 숫자 여야합니다. 어떻게이 필드의 유효성을 검사 할 수 있습니까?ASP.NET MVC 유효성 검사
<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
<center>
<img src="../../Content/images/DocuVault_Logo.png" alt="DocuVault" />
<%= Html.ValidationSummary() %>
<% using (Html.BeginForm("QuickSearch", "Search"))
{ %>
<div id="div_QuickSearch">
<table>
<tr>
<td colspan="2">
<%= Html.TextBox("search", "", new { style = "width: 300px" })%>
<input type="submit" value="Search" />
</td>
</tr>
<tr>
<td colspan="2">
<%= Html.ValidationMessage("search") %>
</td>
</tr>
<tr>
<td><a href="#" id="link_advanced">Advanced Search</a></td>
</tr>
</table>
<br />
</div>
<% } %>
<ul>
</ul>
</div>
<% using (Html.BeginForm("AdvancedSearch", "Search"))
{ %>
<div id="div_AdvancedSearch" style="display: none; width: 420px; padding: 10px;">
People
<table style="border: solid 1px black; padding: 5px; width: 400px;">
<tr>
<td>Name:</td>
<td align="right">
<%= Html.TextBox("searchName") %>
<%= Html.ValidationMessage("searchName")%>
</td>
</tr>
<tr>
<td>Address:</td>
<td align="right">
<%= Html.TextBox("searchAddress") %>
<%= Html.ValidationMessage("searchAddress")%>
</td>
</tr>
<tr>
<td>Account Number:</td>
<td align="right">
<%= Html.TextBox("searchAccountNumber") %>
<%= Html.ValidationMessage("searchAccountNumber")%>
</td>
</tr>
</table>
<br />
Documents
<table style="border: solid 1px black; padding: 5px; width: 400px;">
<tr>
<td>Invoice:</td>
<td align="right">
<%= Html.TextBox("searchInvoice") %>
<%= Html.ValidationMessage("searchInvoice")%>
</td>
</tr>
<tr>
<td>Amount:</td>
<td align="right">
<%= Html.TextBox("searchAmount") %>
<%= Html.ValidationMessage("searchAmount")%>
</td>
</tr>
<tr>
<td>Job:</td>
<td align="right">
<%= Html.TextBox("searchJob") %>
<%= Html.ValidationMessage("searchJob")%>
</td>
</tr>
<tr>
<td>SDI:</td>
<td align="right">
<%= Html.TextBox("searchSDI") %>
<%= Html.ValidationMessage("searchSDI")%>
</td>
</tr>
<tr>
<td>Date:</td>
<td align="right">
<%= Html.TextBox("searchDateBegin", "", new { style = "width: 88px" })%>
to
<%= Html.TextBox("searchDateEnd", "", new { style = "width: 88px" })%>
<%= Html.ValidationMessage("searchDate")%>
</td>
</tr>
</table>
<br />
<div style="width: 100%;">
<span style="float: left; margin-left: 10px;"><a href="#" id="link_quick">QuickSearch</a></span>
<span style="float: right; margin-right: 10px;"><input type="submit" value="Advanced Search" /></span>
</div>
</div>
<% } %>
</center>
</asp:Content>
내 주요 문제는 내 텍스트 상자를 내 클래스와 관련시키지 않고 하나의 양식에서 두 개의 다른 테이블의 데이터를 보유하고 있습니까? – Pinu
Fluent Validation은 C# 개체와 호환되므로 적절한 Clientside 유효성 검사를 생성 할 수는 있지만 모델에서 사용하는 것이 가장 좋습니다. 다른 옵션은 표준 ASP.NET 유효성 검사 컨트롤을 사용하고 각 폼에 대해 다른 ValidationGroup을 사용하는 것일 수 있습니다. 그냥 아이디어 –
Pinu,하지만 당신의 텍스트 상자는 적어도 컨트롤러에 게시되는 모델과 관련이 있어야합니다, 맞습니까? 따라서 FluentValidation 또는 MVC2 out-of-the-box 검증을 사용하여 Model 클래스에서 유효성 검사를 수행 할 수 있습니다. –