0

これは非常に簡単なはずですが、2日間戸惑いました。

jquery.numberformatter-1.2.3.min.js を使用して、ユーザー入力のフォーマットと解析を行います。

$("#Qty").blur(function () { 
    $(this).parseNumber({ format: "#,###", 
                          locale: "us" }); 
    $(this).formatNumber({ format: "#,###", 
                           locale: "us" }); 
});

ビューに表示するモデル フィールドがあります

[Required]        
public long? Qty { get; set; }

<div class="display-field">@Html.TextBoxFor(model => model.Qty)</div> 

ただし、use が「243,000」に入ると、mvc3 コントローラー アクションは常に無効な長さであると見なします。

データ注釈フォーマット属性を使用しようとしましたが、うまくいきませんでした。

[DisplayFormat(DataFormatString = "{0:#,###}", ApplyFormatInEditMode = true)]

アクションで MVC が自動的にユーザー入力をフォーマットし、モデルの状態を有効にする方法を教えてください。

jQuery numberformatter は、文字列を解釈するためにデフォルトの MVC モデル フォーマッタを停止しているようです。

4

1 に答える 1

0

これを試して:

$("#Qty").blur(function () { 
    $(this).parseNumber({ format: "#.###", 
                          locale: "us" }); 
    $(this).formatNumber({ format: "#.###", 
                           locale: "us" }); 
});

[DisplayFormat(DataFormatString = "{0:#.###}", ApplyFormatInEditMode = true)]

これはロケールの問題である可能性があります。これで問題が解決した場合はお知らせください。

于 2012-07-24T21:54:01.847 に答える