当我输入不带逗号的号码(例如,123456)时,以下代码正常工作:号码被发送到控制器的Save
操作,123,456
显示在文本框中。
但是,当我再次点击Save
并尝试使用逗号输入数字123,456
时,Save
操作只会在模型参数中收到零,而零则为0然后显示在文本框中。
我做错了什么?
这是模型类:
public class FormatTextBoxFor
{
public double MyDouble { get; set; }
}
这是控制器:
public class FormatTextBoxForController : Controller
{
public ActionResult Index()
{
FormatTextBoxFor model = new FormatTextBoxFor();
return View(model);
}
[HttpPost]
public ActionResult Save(FormatTextBoxFor model)
{
return View("Index", model);
}
}
观点:
@using (Html.BeginForm("Save", "FormatTextBoxFor", FormMethod.Post))
{
<p>@Html.TextBoxFor(x => x.MyDouble, string.Format("{0:n0}", Model.MyDouble) )</p>
<input type="submit" name="submit" value="Save" id="submit" />
}
答案 0 :(得分:0)
这是因为在服务器123,456被视为文本而不是您在模型中定义的数字。在服务器上,发送的任何值都将映射到模型的属性,并使用默认解析器进行解析。在将值发送到服务器之前,必须重新格式化该值。