У меня есть приложение расписания, где я загружаю PartialView с помощью jQuery. Все работает нормально, но я не знаю, как проверить ввод. Я пытался сделать это так же, как раньше, но это не работает:
<% 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, он также содержит кнопку отправки, которая подчиняется методу действия.
Поскольку я использую Entity Framework, я прочитал, что мне нужно украсить модель 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; }
}
}
Итак, я хочу убедиться, что это число от 0 до 24, введенное здесь для Часов. (Я также хотел бы убедиться, что это int, но я еще не дошел до этого, сначала нужно выполнить проверку)
Так что это не работает, что я делаю не так? Разве это невозможно сделать, потому что у меня есть сложная модель с циклом for в PartialView?
Я также думал о попытке найти какую-то строгую проверку jQuery (я видел плагины jQuery для этого), но я не могу понять, как использовать jQuery в PartialView. Потому что как я могу запустить jQuery, когда функция document.ready находится в основном (родительском) представлении? В любом случае мне это нужно, потому что позже я хочу иметь возможность делать что-то, если пользователь выбирает поле ввода ...
PS: Я все еще довольно новичок в jQuery и MVC, поэтому я очень ценю четкие указания относительно того, что я делаю неправильно ... Спасибо!