我有一個時間表應用程序,我用jQuery加載PartialView。一切工作正常,但我不知道如何驗證輸入。我試圖做同樣它我怎麼做之前,但它不工作:使用複雜模型驗證partialview?
<% for (int i = 0; i < Model.Tasks.Count; i++)
{
var task = Model.Tasks[i];
%>
<tr class="taskrow">
<td class="customer">
<%: task.Customer.CustomerName %>
</td>
<td class="task">
<%: task.TaskName %>
</td>
<% for (int j = 0; j < task.TimeSegmentList.Count; j++)
{ %>
<td>
<%: Html.TextBoxFor(model => model.Tasks[i].TimeSegmentList[j].Hours, new { @class = "hourInput" })%>
<%: Html.ValidationMessageFor(model => model.Tasks[i].TimeSegmentList[j].Hours)%>
</td>
<% } %>
</tr>
<% } %>
雖然這是PartialView使用jQuery加載,它也包含一個提交按鈕,提交到的操作方法。
因爲我使用實體框架我已閱讀,我需要這樣的DataAnnotations裝點型號:
[MetadataType(typeof(TimeSegmentMetaData))]
public partial class TimeSegment
{
public class TimeSegmentMetaData
{
[Range(0,24,ErrorMessage = "Must be between 0 and 24 hours")]
public object Hours { get; set; }
}
}
所以我想,以確保它是一個號碼在此輸入24之間0和小時。 (我也想確保它是一個整數,但我還沒有得到這一點,首先需要驗證工作)
所以這不起作用,我做錯了什麼?這是不可能的,因爲我在PartialView中有for循環的複雜模型?
我也想試圖找到一些嚴格的jQuery驗證(我已經看到jQuery插件存在這個),但我無法弄清楚如何在PartialView中使用jQuery。因爲如何在document.ready函數在主(父)視圖內運行時運行jQuery?我會需要這個,因爲後來我想能夠做的事情,如果用戶選擇一個輸入字段...
PS:我還是比較新的jQuery和MVC,所以我會很感激明確指出我在做什麼錯...謝謝!
好吧,類型就是反對,因爲這是在實體框架中的元數據,在實際的模型,它是一個int。而且我不能使用foreach,因爲視圖中帶有textboxfor的綁定需要for循環。 – Anders 2010-12-20 09:22:10