Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery kendoNumericTextBox asp.net mvc中的十进制值问题_Jquery_Asp.net_Asp.net Mvc_Kendo Ui_Kendonumerictextbox - Fatal编程技术网

Jquery kendoNumericTextBox asp.net mvc中的十进制值问题

Jquery kendoNumericTextBox asp.net mvc中的十进制值问题,jquery,asp.net,asp.net-mvc,kendo-ui,kendonumerictextbox,Jquery,Asp.net,Asp.net Mvc,Kendo Ui,Kendonumerictextbox,我有以下问题。在波兰文化中使用应用程序时,脚本kendo.Culture.pl-pl.min.js和kendo.messages.pl-pl.min.js加载正确,我可以在控制台中检查它:在发出kendo.Culture()之后,我得到对象{name:“pl pl”,numberFormat:object 在我看来,我正在使用 @Html.Kendo().NumericTextBoxFor(m => m.LimitMax) 其中LimitMax是十进制的,值为200。当我的视图呈现时,我

我有以下问题。在波兰文化中使用应用程序时,脚本kendo.Culture.pl-pl.min.js和kendo.messages.pl-pl.min.js加载正确,我可以在控制台中检查它:在发出kendo.Culture()之后,我得到对象{name:“pl pl”,numberFormat:object

在我看来,我正在使用

@Html.Kendo().NumericTextBoxFor(m => m.LimitMax)
其中LimitMax是十进制的,值为200。当我的视图呈现时,我在KendoNumericTextBox中看不到任何值-如果我想检索它,我会得到null

我试图调查问题,发现: 1) 助手生成的输入如下所示:

<input data-val="true" data-val-number="Pole musi być liczbą." data-val-range="Pole musi być z zakresu od 0 do 2147483647." data-val-range-max="2147483647" data-val-range-min="0" id="LimitMax" name="LimitMax" type="number" value="200,0000" />
我可以通过设置以下选项来解决此问题:

@Html.Kendo().NumericTextBoxFor(m => m.LimitMax).Culture("en-US")
但这种方式对我来说并不合适


你能提供一些解决这个问题的方法吗?

不幸的是,我自己也没有在互联网上找到任何解决方案。我不得不进行一些黑客攻击,在视图呈现后,我做了以下操作:

if ($("#LimitMax").data("kendoNumericTextBox").value() === null) {
    var rawValue = $("#LimitMax").attr("value");
    if (rawValue) {
        rawValue = rawValue.replace(",", ".");
    }
    if ($.isNumeric(rawValue)) {
        $("#LimitMax").data("kendoNumericTextBox").value(rawValue);
    } 
}

你的mvc应用程序上有什么文化?在
Thread.CurrentThread.CurrentCulture
Thread.CurrentThread.CurrentUICulture
?两者都设置为
pl
?如果没有设置,请尝试设置它并检查它是否有用。它正确设置为pl-pl,这就是Razor将十进制值渲染为200000的原因。将c加倍见鬼,我在视图中呈现了@Thread.CurrentThread.CurrentCulture,它显示为pl
if ($("#LimitMax").data("kendoNumericTextBox").value() === null) {
    var rawValue = $("#LimitMax").attr("value");
    if (rawValue) {
        rawValue = rawValue.replace(",", ".");
    }
    if ($.isNumeric(rawValue)) {
        $("#LimitMax").data("kendoNumericTextBox").value(rawValue);
    } 
}