C# MVC Jquery全球化-验证十进制

C# MVC Jquery全球化-验证十进制,c#,jquery,asp.net-mvc,globalization,C#,Jquery,Asp.net Mvc,Globalization,我正在努力使用全球化验证十进制字段 我需要我的值是法文格式的(coma作为十进制分隔符,没有千分隔符) 编辑:更新如下 这是我的模型: public class CompanyTaxHistoryModel { [Required] public DateTime DateFrom { get; set; } [Required] public DateTime DateTo { get; set; } [Required] [Range(0,

我正在努力使用全球化验证十进制字段

我需要我的值是法文格式的(coma作为十进制分隔符,没有千分隔符)

编辑:更新如下

这是我的模型:

public class CompanyTaxHistoryModel
{
    [Required]
    public DateTime DateFrom { get; set; }

    [Required]
    public DateTime DateTo { get; set; }

    [Required]
    [Range(0, 100, ErrorMessage = "The percentage must be between 0 and 100")]
    [DisplayFormat(DataFormatString = "{0:N} %")]
    [Display(Name = "Company Tax")]
    public decimal CompanyTaxPercent { get; set; }

}
这是我的web.config:

我添加了一个“localizationHelper”,如下所示:

namespace xxxx.Helpers
{
    public static class LocalizationHelpers
    {
        public static IHtmlString MetaAcceptLanguage<t>(this HtmlHelper<t> html)
        {
            var acceptLanguage = HttpUtility.HtmlAttributeEncode(System.Threading.Thread.CurrentThread.CurrentUICulture.ToString());
            return new HtmlString(String.Format("<meta name=\"accept-language\" content=\" {0}\">",acceptLanguage));

        }
    }
}
namespace xxxx.Helpers
{
公共静态类本地化助手
{
公共静态IHtmlString MetaAcceptLanguage(此HtmlHelper html)
{
var acceptLanguage=HttpUtility.htmlAttributeNCode(System.Threading.Thread.CurrentThread.CurrentUICulture.ToString());
返回新的HtmlString(String.Format(“,acceptLanguage));
}
}
}
我在my_Layout.cshtml中使用的格式:

@using xxxx.Helpers
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    @Html.MetaAcceptLanguage() 
@使用xxxx.Helpers
@Html.MetaAcceptLanguage()
我已将Globalize.js+和所需的文化添加到我的项目中,并将以下内容添加到我的脚本中:

$(document).ready(function () {
    var data = $("meta[name='accept-language']").attr("content")
    Globalize.culture(data);
});

$.validator.methods.date = function (value, element) {
    return Globalize.parseDate(value);
};

$.validator.methods.range = function (value, element, param) {
    return this.optional(element) || (Globalize.parseFloat(value) >= param[0] && Globalize.parseFloat(value) <= param[1]);
}

$.validator.methods.number = function (value, element) {
    return !isNaN(Globalize.parseFloat(value));
}
$(文档).ready(函数(){
var data=$(“meta[name='accept-language']”)attr(“content”)
全球化。文化(数据);
});
$.validator.methods.date=函数(值,元素){
返回Globalize.parseDate(值);
};
$.validator.methods.range=函数(值、元素、参数){
返回此.optional(element)| |(Globalize.parseFloat(value)>=param[0]&&Globalize.parseFloat(value)So

对于全球化问题,我的问题的编辑中反映了解决方案(到目前为止似乎工作得很好)

至于点/逗号问题,我就是这么做的

function validateFrNumber(e) {

        theCulture = Globalize.cultureSelector;
        foundFR = theCulture.indexOf("FR")
        foundfr = theCulture.indexOf("fr")

        if (foundFR != '-1' || foundfr != '-1') {
            theValeur = $(e).find("input").val();
            foundDot = theValeur.indexOf(".");

            if (foundDot > -1) {
                $(e).find("input").attr('value', theValeur.replace(".", ","));
            }
        }

}
然后在输入onkeyup中调用此函数:

<div class="input" onkeyup="validateFrNumber(this)">@Html.EditorFor(model => model.MydecimalValue)</div>
@Html.EditorFor(model=>model.MydecimalValue)

对于模型绑定十进制值,此链接将帮助您。