У меня есть приложение расписания, в котором я загружаю 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, поэтому я бы очень признателен за четкие указатели на то, что я делаю неправильно ... Спасибо!