Мне нужна помощь в выяснении того, как успешно реализовать ненавязчивую проверку поля на стороне клиента в моем приложении ASP.NET MVC 3.Я вижу, что ненавязчивая проверка на стороне клиента в основном включена , поскольку MVC генерирует связанный HTML.
В этом случае я хочу добиться проверки ввода в Bugs
редактор (т. е. соответствующий элемент <input>
) при вводе, для целей тестирования я установил максимальную длину свойства равной 2. При тестировании я могу сказать, что проверка в настоящее время не выполняется, поэтому что-то по крайней мере не хватает, Итак, критерием успеха для этого вопроса является проверка на стороне клиента поля формы Bugs
.
Я вижу одну возможную проблему в сгенерированном HTML: свойство Verbose
не помечен как Required
в модели, но соответствующий ему <input>
по-прежнему получает атрибут dataval=true
, например, , тогда как <input>
для Bugs
не ,Не должно ли быть наоборот, поскольку поля с правилами проверки должны получить dataval=true
, чтобы включить ненавязчивую проверку?
Код, который должен иметь отношение к пониманию случая, следует, пожалуйста, дайте мне знать, если большетребуется информация:
Options.cs
:
public class Options
{
[Required, StringLength(2)]
public string Bugs;
public bool Verbose;
}
Options.cshtml
:
<script src="@Url.Content("~/Scripts/jquery-1.6.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<div id="options-form">
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Options</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Bugs)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Bugs)
@Html.ValidationMessageFor(model => model.Bugs)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Verbose)
</div>
<div class="editor-field">
@Html.CheckBoxFor(model => model.Verbose)
@Html.ValidationMessageFor(model => model.Verbose)
</div>
</fieldset>
}
</div>
Два редактора (для Bugs
и Verbose
):представляется следующим образом:
<div id="options-form">
<form action="/Options" method="post">
<fieldset>
<legend>Options</legend>
<div class="editor-label">
<label for="Bugs">Bugs</label>
</div>
<div class="editor-field">
<input class="text-box single-line" id="Bugs" name="Bugs" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="Bugs" data-valmsg-replace="true"></span>
</div>
<div class="editor-label">
<label for="Verbose">Verbose</label>
</div>
<div class="editor-field">
<input data-val="true" data-val-required="The Boolean field is required." id="Verbose" name="Verbose" type="checkbox" value="true" /><input name="Verbose" type="hidden" value="false" />
<span class="field-validation-valid" data-valmsg-for="Verbose" data-valmsg-replace="true"></span>
</div>
</fieldset>
</form>
</div>