gpt4 book ai didi

asp.net-mvc-2 - 如何使全局化与 MVC2 和 jquery 一起工作?

转载 作者:行者123 更新时间:2023-12-04 20:58:15 26 4
gpt4 key购买 nike

我正在尝试在 asp.net mvc2 应用程序中进行一些全局化,但无法使其完全工作。我正在使用图书馆 http://github.com/nje/jquery-glob作为根据用户意愿显示货币和日期等的工具。然而,有些事情让我有点困扰。 IU 无法通过客户端/服务器端验证来实际接受使用 jQuery 的全局化。无论我尝试什么,如果我回发 40.00 一切正常,但如果我发回 40,00,它被接受为 0(不是有效的 .NET 不变十进制值)。我试着关注 @haackedguide

这是在 global.asax 中用于服务器端处理:

private void SetCulture(string currencySymbol)
{
AjaxHelper.GlobalizationScriptPath =
http://ajax.microsoft.com/ajax/4.0/1/globalization/";

var culturePref = "sv-SE";
var request = HttpContext.Current.Request;

if (request.UserLanguages == null)
return;

var lang = request.UserLanguages[0];
if (lang != null) {
try {
Thread.CurrentThread.CurrentCulture =
CultureInfo.CreateSpecificCulture(lang);
}
catch {
Thread.CurrentThread.CurrentCulture =
new CultureInfo(culturePref);
}
}

Thread.CurrentThread.CurrentUICulture =
Thread.CurrentThread.CurrentCulture;
}

然后在客户端,我包含了以下脚本:
<script src="/Scripts/jquery-1.4.2.js" type="text/javascript"></script>
<script src="/Scripts/jquery.glob.js" type="text/javascript"></script>
<script src="/Scripts/globinfo/jquery.glob.sv-SE.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$.culture = jQuery.cultures['sv-SE'];
$.preferCulture('sv-SE');
});
</script>
<script src="/Scripts/jquery.validate.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.pack.js" type="text/javascript"></script>
<script src="/Scripts/MicrosoftMvcJQueryValidation.js" type="text/javascript"></script>
<script src="/Scripts/jquery.metadata.js" type="text/javascript"></script>

到目前为止还不错,但作用不大。不要误会我的意思,我仍然可以在客户端上使用它,但在服务器端没有任何实际发生。下面的 jQuery 相应地更改了格式,但是当我回发 40,00 时,它变为 0.00。
function globalizePage(culture) {
// Set culture from select list
$.preferCulture(culture);

$("input[id$='Date']").val(function () {
var dateString = $(this).val();
var date = Date.parse(dateString);
var dt = $.format(date, 'd', culture.name);
return dt;
});

$("input[id$='Price']").val(function () {
var price = $.parseInt($(this).val());
var retVal = $.format(price, 'c', culture.name);
return retVal;
});
}

我需要做什么才能使上述代码工作?

最佳答案

问题解决了,培根保存或炸鸡。发生这种情况的原因是 jquery.validate 和 jquery.glob 使用一个名为“格式”的函数,如果在 glob 之后添加验证,则调用 validate.format 函数,这会破坏全局化。另一方面验证功能。我不知道 javascript 或 jquery 足以告诉你任何解决方法。我将只手动编写表单验证代码,而忘记 MicrosoftMVCjQueryValidation,因为它不会对验证插件进行公正处理。

<script src="https://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="https://ajax.microsoft.com/ajax/jQuery.Validate/1.7/jQuery.Validate.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.glob.js" type="text/javascript"></script>
<script src="/Scripts/globinfo/jquery.glob.sv-SE.js" type="text/javascript"></script>
<script src="/Scripts/jquery.forms.js" type="text/javascript"></script>

关于asp.net-mvc-2 - 如何使全局化与 MVC2 和 jquery 一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3487021/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com