3

入力データを強制的に大文字にするカスタム データ注釈を作成したいと考えています。ユーザーが小文字で何かを入力した場合、自動的に (サイレントに) 大文字に変換されます。これは検証の問題ではありません。

私はこのようなものが欲しいです:

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 呼び出しを記述する必要はありません。または特定のクラス名を強制します。

4

3 に答える 3

1

私は間違っている可能性がありますが、属性を使用してこれを行う方法がわかりません。ただし、次のように、プロパティにはいつでもバッキングフィールドを使用できます。

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(); }
    }
}

確かに、それははるかに醜いですが、それは機能します。

于 2011-07-01T21:21:56.357 に答える
0

ビュー内の私のコード行は次のとおりです。

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

関連するスクリプトは次のとおりです。

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

これは私にとってはうまくいきました。また、EditorFor の代わりに TextBoxFor を使用することが不可欠でした。

編集者向け:

@Html.EditorFor(model => model.Nome, new { htmlAttributes = new { @class = "form-control", @onkeyup = "InputToUpper(this);" } })
于 2014-10-16T00:15:02.753 に答える