【发布时间】:2011-07-09 03:52:46
【问题描述】:
在 Web.config 文件中使用 globalculture="da-DK" 时,jQuery 验证不起作用。
在丹麦,当我们为 at 产品写价格时,我们使用符号 19,95 而不是美国的 19.95,这给我带来了一个我无法解决的问题。
我已经启动了 VS2010,新的 MVC 3 项目,添加了一个 homeController、一个 Product 类和一个简单的标准编辑视图,并且错误已经存在。
产品类别:
public class Product
{
public string name { get; set; }
public string itemNo { get; set; }
public decimal price { get; set; }
}
HomeController:
public class homeController : Controller
{
public ActionResult Index()
{
var product1 = new Product { name = "Testproduct", itemNo = "PRD-151541", price = 19 };
return View(product1);
}
}
索引视图:
@model WebUI.DomainModel.Product
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Product</legend>
<div class="editor-label">
@Html.LabelFor(model => model.name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.name)
@Html.ValidationMessageFor(model => model.name)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.itemNo)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.itemNo)
@Html.ValidationMessageFor(model => model.itemNo)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.price)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.price)
@Html.ValidationMessageFor(model => model.price)
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
结果:
很遗憾,我无法在此处提交图片 - 请点击此链接查看结果: http://www.designvision.dk/temp/mvc3_razor_validation_error.gif
所以 - 运行网站时,该字段将设置为 19,00 - 这是正确的文化定义 - 但在尝试保存时,验证失败。
请帮忙...
【问题讨论】:
-
+1 好问题,我也有同样的问题,只是日期问题
-
好问题,如果您将其发送到 Microsoft Connect 会更好。当开发人员基于实体框架自动生成视图时,十进制字段的@Html.ValidationMessageFor 的行为与您在此处显示的完全一样。
标签: jquery validation asp.net-mvc-3 globalization culture