在我的模型中,我使用属性。
[Display(Name = "Pensja")]
public decimal? Salary { get; set; }
在编辑剃刀视图中,我想将值从4000,00更改为4000,50。 在视图中它看起来像这样。
<div class="form-group">
@Html.LabelFor(model => model.Salary, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Salary, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Salary, "", new { @class = "text-danger" })
</div>
</div>
我收到的消息是薪水必须是一个数字。我做错了什么?
答案 0 :(得分:1)
我认为您的错误消息是在客户端(jscipt)并且认为您的语言是波兰语,因此您可能需要配置与您的语言环境相关的一些内容。
查看此网址http://msdn.microsoft.com/en-us/library/gg674880(VS.98).aspx和https://weblogs.asp.net/scottgu/jquery-globalization-plugin-from-microsoft
或禁用您的客户端验证
@{ Html.EnableClientValidation(false); }
@Html.EditorFor(model => model.Salary, new { htmlAttributes = new { @class = "form-control" } })
@{ Html.EnableClientValidation(true); }
答案 1 :(得分:0)
我检查了您的问题,此消息为Client validation
消息,可能是真的。
您必须使用正确 valdiation
脚本,因为货币分隔符与国家/地区不同
答案 2 :(得分:0)
我也找到了另一种解决方案。 在视图中。
<div class="form-group">
@Html.LabelFor(model => model.Salary, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
<input type="text" name="UserSalary" id="UserSalary" value="@Model.Salary"/>
</div>
</div>
在控制器中。
decimal salary;
Decimal.TryParse(Request.Form["UserSalary"].ToString(), NumberStyles.Any, new CultureInfo("pl-PL"), out salary);
user.Salary = salary;