我正在开发一个同时使用jQuery Globalization和jQuery UI Slider的 ASP.NET MVC 3 应用程序。
我正在将此应用程序本地化为来自巴西的葡萄牙语 (pt-BR),它还支持英语。
问题是,当我将语言更改为葡萄牙语时,所有模型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);