Я работаю с MVC 4 в первый раз. У меня есть бизнес-логика, которая немного сложна, но я бы не представлял, что это не редкость. У меня есть элементы, которые могут быть изменены в определенном диапазоне. Диапазон зависит от предмета.Как добавить пользовательскую проверку на страницу Razor?
public class MyItem
{
public double Width { get; set; }
public double MinWidth { get; set; }
public double MaxWidth { get; set; }
}
CustomWidth
при установке пользователя должен быть в пределах MinWidth
и MaxWidth
включительно. Это похоже на общую проблему. Я пробовал атрибут CustomValidation
, но он проверяет только, когда я пытаюсь сохранить объект в моей базе данных (используя Entity Framework).
Это страница Razor, с которой я работаю.
@using (Html.BeginForm("Action", "Controller", FormMethod.Post)) {
<aside id="aside">
<div class="editor-label">
@Html.LabelFor(model => model.Width)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Width)
@Html.ValidationMessageFor(model => model.Width)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Height)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Height)
@Html.ValidationMessageFor(model => model.Height)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Depth)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Depth)
@Html.ValidationMessageFor(model => model.Depth)
</div>
<input type="submit" value="save" />
</aside>
}
Это будет работать, но я не хочу, чтобы соединить мой слой данных, которые близко к MVC. – Jordan
Он не будет связывать ui с datalayer, если вы использовали модель представления –
Точка хорошо взята, но она все равно будет сочетать валидацию с моделью просмотра слишком много для удобства. Я не понимал, что возвращение модели после того, как сообщение будет сообщать об ошибках. Я уже собрал это благодаря @mrcolombo. – Jordan