我的模特类:
public class Person
{
[DataType(DataType.Currency)]
public decimal Salary { get; set; }
}
我的 Controller
public class PersonController : Controller
{
public ActionResult Create()
{
var person = new Person();
person.Salary = 100; // setting default value
return View(person);
}
public ActionResult Create(Person person)
{
// Save, validate, etc...
}
}
我的创建 View :
@model Person
<h2>Create person</h2>
@using (Html.BeginForm()) {
<div class="editor-label">
@Html.LabelFor(model => model.Salary)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Salary)
@Html.ValidationMessageFor(model => model.Salary)
</div>
}
单击提交后,页面显示以下不正确的验证错误:
请注意整数和小数点之间的分隔符。 ,我相信错误的验证失败源于文化信息差异。在服务器上,C#使用逗号作为分隔符,而在客户端上,JS需要一个点。解决此问题的安全方法是什么?
最佳答案
这个StackOverflow问题也可能是您正在寻找的解决方案:
How should I use EditorFor() in MVC for a currency/money type?
关于c# - 服务器和浏览器ASP.NET MVC之间的CultureInfo冲突,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20567461/