ASP.Net MVC3 - Пользовательская аннотация данных для перевода в верхний регистр - PullRequest
3 голосов
/ 02 июля 2011

Я хотел бы создать пользовательскую аннотацию данных, которая заставит введенные данные быть в верхнем регистре.Если пользователь вводит что-либо в нижнем регистре, оно должно быть автоматически (и без вывода сообщений) преобразовано в верхний регистр.Это не проблема проверки.

Мне бы хотелось что-то вроде этого:

public class Address {
    public string Address {get; set;}
    public string City {get; set;}

    [ForceUpperCase]
    public string State{get; set;}

}

Например, при использовании @ HTML.EditorFor (x => x.State) Мне бы хотелось, чтобы HTML, созданный для меня, позаботился обо всем этом - я не хочу писать jQuery-вызовы, чтобы изменить данные или принудительно ввести имя определенного класса.

Ответы [ 3 ]

0 голосов
/ 16 октября 2014

Моя строка кода в представлении:

@Html.TextBoxFor(model => model.BldgNameAbbv, new {onkeyup="InputToUpper(this);"})

Связанный скрипт:

<script>
function InputToUpper(obj)
{
    if (obj.value!="")
    {
    obj.value = obj.value.toUpperCase();
    }
}
</script>

Это сработало для меня. И использование TextBoxFor вместо EditorFor было необходимо.

Для EditorFor:

@Html.EditorFor(model => model.Nome, new { htmlAttributes = new { @class = "form-control", @onkeyup = "InputToUpper(this);" } })
0 голосов
/ 19 мая 2016

Вы также можете использовать верхний регистр в CSS с помощью свойства text-transform. (см. Это)

CSS:

.upperCase 
{
    text-transform: uppercase !important;
}

! Важный не обязателен.


Вид (Бритва):

@Html.EditorFor(model => model.Property, new { htmlAttributes = new { @class = "upperCase" } })

если вы используете традиционный html, вам просто нужно добавить атрибут html class = "upperCase" в ваш ввод.

Html:

<input type="text" class="upperCase"/>

См. Пример здесь: https://jsfiddle.net/ahLw7uq2/

0 голосов
/ 02 июля 2011

Я могу ошибаться, но я не вижу способа сделать это с помощью атрибута.Но вы всегда можете использовать поле поддержки для вашей собственности, например так:

public class Address {
    private string _state;

    public string Address {get; set;}
    public string City {get; set;}

    public string State
    {
        get { return _state; }
        set { _state = value.ToUpper(); }
    }
}

Конечно, это намного уродливее, но это работает.

...