Почему MVC не проверяет мои аннотации данных? - PullRequest
0 голосов
/ 05 января 2012

У меня есть следующий набор:

public class Account : AuditableTable, IAccount  
{
}
public class Product : AuditableTable  
{
}
public abstract class AuditableTable

    [Range(0, 99, ErrorMessage = "Position must be between 0 and 99.")]
    [DisplayName("Position")]
    public int? Position { get; set; }

На мой взгляд:

        <div class="adm_td0">
        @Html.TextBoxFor(model => model.Account.Position, new { size = 4 })
        </div>
        <div class="adm_td0">
        @Html.ValidationMessageFor(model => model.Account.Position)
        </div>

Когда я ввожу число больше 99, число принимается.У кого-нибудь есть идеи, почему это происходит?Когда я проверяю свой исходный код, я вижу

<input id="Product_Position" type="text" value="24788" size="4" name="Product.Position" data-val-range-min="0" data-val-range-max="99" data-val-range="Position must be between 0 and 99." data-val-number="The field Position must be a number." data-val="true">

Но на странице нет проверки ИЛИ на сервере.

На странице я включил следующие Javascripts:

"~/Scripts/jquery/jquery-1.6.1.min.js"

Я думаю, что что-то упустил, поэтому нет проверки клиента.НО все еще не должна быть проверка сервера?

Если я выполняю проверку на клиенте, нужно ли включать ВСЕ из следующего:

"~/Scripts/jquery.unobtrusive-ajax.min.js"
"~/Scripts/jquery.validate.js"
"~/Scripts/jquery.validate.unobtrusive.js"

1 Ответ

0 голосов
/ 05 января 2012

Попробуйте изменить код просмотра на:

@Html.EditorFor(model => model.Account.Position)

Должно работать

Также необходимо включить

"~ / Scripts / jquery.unobtrusive-ajax.min.js"

"~ / Scripts / jquery.validate.js"

"~ / Scripts / jquery.validate.unobtrusive.js"

В противном случае ваши проверки не будут работать на этой странице

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...