我的模特类:

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/

10-13 05:54