Как изменить валидацию сообщения «data-val-number» в MVC, пока оно генерируется помощником @Html - PullRequest
72 голосов
/ 28 января 2011

Предположим, что эта модель:

Public Class Detail
    ...
    <DisplayName("Custom DisplayName")>
    <Required(ErrorMessage:="Custom ErrorMessage")>
    Public Property PercentChange As Integer
    ...
end class

, а представление:

@Html.TextBoxFor(Function(m) m.PercentChange)

продолжит этот HTML:

   <input data-val="true" 
    data-val-number="The field 'Custom DisplayName' must be a number." 
    data-val-required="Custom ErrorMessage"     
    id="PercentChange" 
    name="PercentChange" type="text" value="0" />

Я хочу настроить data-val-number сообщение об ошибке, которое, я думаю, сгенерировано, потому что PercentChange является Integer.Я искал такой атрибут, чтобы изменить его, range или что-то связанное, не работает.
Я знаю, что есть шанс отредактировать сам файл ненавязчивого js или переопределить его на стороне клиента.Я хочу изменить сообщение об ошибке data-val-number, как и другие на стороне сервера.

Ответы [ 13 ]

1 голос
/ 19 декабря 2012

Я только что сделал это и затем использовал выражение регулярного выражения:

$(document).ready(function () {
    $.validator.methods.number = function (e) {
        return true;
    };
});


[RegularExpression(@"^[0-9\.]*$", ErrorMessage = "Invalid Amount")]
public decimal? Amount { get; set; }
0 голосов
/ 14 мая 2018

Я делаю это, помещая это на мой взгляд

@Html.DropDownListFor(m => m.BenefNamePos, Model.Options, new { onchange = "changePosition(this);", @class="form-control", data_val_number = "This is my custom message" })
0 голосов
/ 06 октября 2014

У меня есть эта проблема в KendoGrid, я использую скрипт в КОНЦЕ View для переопределения data-val-number:

@(Html.Kendo().Grid<Test.ViewModel>(Model)
  .Name("listado")
  ...
  .Columns(columns =>
    {
        columns.Bound("idElementColumn").Filterable(false);
    ...
    }

И, по крайней мере, в конце View я поставил:

<script type="text/javascript">
        $("#listado").on("click", function (e) {
            $(".k-grid #idElementColumn").attr('data-val-number', 'Ingrese un número.');
        });    
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...