【发布时间】:2011-05-02 18:58:24
【问题描述】:
我正在开发一个同时使用 jQuery Globalization 和 jQuery UI Slider 的 ASP.NET MVC 3 应用程序。
我正在将此应用本地化为来自巴西的葡萄牙语 (pt-BR),它还支持英语。
问题是,当我将语言更改为葡萄牙语时,所有 Model float 值都由逗号 (, ) 分隔,例如 7,7。然后我尝试设置 Slider 的初始值,但它只接受带有点 (.) 的值,例如 7.7。
为了克服这种情况,我正在这样做:
$.CreateSlider("#sliderHeight", "#Height", @Model.Height.FormatValue(), 0, 2.5, 0.01);
FormatValue 是一个扩展方法:
public static string FormatValue(this float value)
{
return value.Value.ToString().Replace(",", ".");
}
您看到我必须将逗号分隔符替换为点分隔符,以便我可以设置 jQuery Slider 值。
然后我必须使用 jQuery Globalization 以这种方式在 UI 中显示正确的值:
$(textBox).val($.global.format(ui.value, 'n2'));
它至少可以工作......
我的问题是:
有更好或标准的方法吗?
问题是模型值以应有的方式出现,也就是说,当我将文化切换到 pt-BR 时,数字以 (, ) 分隔。这在我看来是正确的。限制在于 jQuery Slider 接收值的方式。
只是为了补充:如果我尝试以它们来自@Model 的方式传递值,我会有这样的东西,这显然会中断(因为参数值本身用逗号分隔):
$.CreateSlider("#sliderHeight", "#Height", 7,7 , 0, 2.5, 0.01);
【问题讨论】:
标签: asp.net-mvc-3 localization numbers jquery-globalization jquery-slider