![](/img/trans.png)
[英]How to format calculated value as decimal in mvc3/razor/webgrid?
[英]Decimal value is not valid for price. MVC3
產品.cs
...
[Required(ErrorMessage="Price is required")]
[Range(0.01, 100000.00,
ErrorMessage="Price must be between 0.01 and 100000.00")]
public decimal Price { get; set; }
...
當我輸入“89.48”時,表單給出“值“89.48”對價格無效”。 我認為這是因為我電腦的默認語言。 它不是英語。 它是俄語。
我試圖通過haacked.com說明解決這個問題:
更新了 Global.asax
ModelBinders.Binders.Add(typeof(decimal), new DecimalModelBinder());
沒有效果。 然后我嘗試通過客戶端驗證修復它 1.Added JavaScript file called "jQueryFixes.js" with code
$.validator.methods.range = function (value, element, param) { var globalizedValue = value.replace(",", "."); return this.optional(element) || (globalizedValue >= param[0] && globalizedValue <= param[1]); } $.validator.methods.number = function (value, element) { return this.optional(element) || /^-?(?:\\d+|\\d{1,3}(?:[\\s\\.,]\\d{3})+)(?:[\\.,]\\d+)?$/.test(value); }
這段代碼沒有解決這個問題。 你能建議我在這里做錯什么嗎?
我在 web.config 中設置
<system.web>
<globalization uiCulture="en-US" culture="en-US"/>
<system.web>
這個解決方案對我有用,我遇到了同樣的錯誤
嘗試這個
[Required(ErrorMessage = "Price is required")]
[Range(typeof(decimal), "0.01", "100000.00", ErrorMessage = "enter decimal value")]
[RegularExpression(@"^\[0-9]{1,6}\.[0-9]{2}$", ErrorMessage="enter decimal value of format $9.99")]
public decimal Price { get; set; }
應該有幫助。
在您的DecimalModelBinder
類中替換為這個。
//if with period use InvariantCulture
if (valueResult.AttemptedValue.Contains("."))
{
actualValue = Convert.ToDecimal(valueResult.AttemptedValue,
CultureInfo.InvariantCulture);
}
else
{
//if with comma use CurrentCulture
actualValue = Convert.ToDecimal(valueResult.AttemptedValue,
CultureInfo.CurrentCulture);
}
解決方案來自此鏈接。
在 Global.asax 文件中使用以下代碼解決了我的土耳其語問題
protected void Application_BeginRequest()
{
var cultureInfo = new CultureInfo("tr-TR");
cultureInfo.NumberFormat.NumberDecimalSeparator = ".";
System.Threading.Thread.CurrentThread.CurrentUICulture = cultureInfo;
Thread.CurrentThread.CurrentCulture = cultureInfo;
}
嘗試這個:
[Required(ErrorMessage = "Price is required")]
[DataType(DataType.Currency)]
public decimal Price { get; set; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.