У меня есть вид модели с аннотацией данных атрибутовданных и ввод [файл]
public class vm{
[Required(AllowEmptyStrings=false,ErrorMessage="message 1")]
public string Name { set; get; }
[RegularExpression("([0-9]+)", ErrorMessage = "message 2")]
public int Period { set; get; }
[Required(ErrorMessage = "message 3")]
[RegularExpression(@"^(\.xls|\.xlsx)$",
ErrorMessage = "message 3")]
public string Extension { set; get; }
}
Период поле ограниченно для выпадающего списка и с этим полем сборки в проверке клиента работает нормально.
@Html.DropDownListFor(x => x.Period, Model.Periods, new { @class = "form-control", name = "period" })
Я могу получить сообщение об ошибке через ValidationSummary или ValidationMessageFor.
Теперь проблема с полями расширения и имени. Они заполняются моим пользовательским связующим из поданного файла.
<input type="file" name="file" />
Как можно вручную связать эти два поля в файле тега ввода, JQuery unobstrusive проверки клиент может работать?
UPDATE
Только сейчас я нашел, как произвести вход [файл] с встроенным помощником по:
@Html.TextBoxFor(x => x.Extension, new { type = "file" })
Но теперь проблема в том, как я могу связать второй поле к нему тоже? Я просто хочу, чтобы один вход связан с двумя полями в модели. Как я могу это сделать? Это не кажется, работает даже со скрытым полем:
@Html.HiddenFor(x=>x.Name)
Если вы не вносите входы для 'Name' и' Extension', вы не можете ассоциировать 'ValidationMessageFor' с ними. –