После поисков и экспериментов в течение 2 дней я смягчаюсь.Что я хотел бы сделать, это вручную подключить введенный HTML с проверкой JQuery.Я получаю простой строковый массив с сервера и создаю выборку со строками в качестве параметров.Статические поля в форме проверяются нормально.Я пробовал следующее:
var dates = $("<select id='ShiftDate' data-val='true' data-val-required='Please select a date'>");
dates.append("<option value=''>-Select a Date-</option>");
for (var i = 0; i < data.length; i++) {
dates.append("<option value='" + data[i] + "'>" + data[i] + "</option>");
}
$("fieldset", addShift).append($("<p>").append("<label for='ShiftDate'>Shift Date</label>\r").append(dates).append("<span class='field-validation-valid' data-valmsg-for='ShiftDate' data-valmsg-replace='true'></span>"));
// I tried the code below as well instead of adding the data-val attributes and span manually with no luck
dates.rules("add", {
required: true,
messages: {
required: "Please select a date"
}
});
// Thought this would do it when I came across several posts but it didn't
$.validator.unobtrusive.parse(dates.closest("form"));
Я знаю, что мог бы создать модель представления, украсить ее обязательным атрибутом, создать серверную часть SelectList и отправить ее, но это скорее "как"я бы сделал эту "ситуацию сейчас.Может кто-нибудь пролить свет на то, почему приведенный выше код не будет работать так, как я ожидаю?
-chad