通过HttpPost传递小数

时间:2012-07-23 14:30:13

标签: c# .net asp.net-mvc-3 razor

我正在通过HttpGet将一个对象加载到一个视图中,并用数据填充@Html.EditorFor,我正在显示数据,我会创建它以便用户可以编辑他想要的内容和通过HttpPost将更改的对象提交给控制器。

Tere是代码:

<div class="editor-label">
    @Html.Label("Taxa IVA normal")
</div>
<div class="editor-field">
    @Html.EditorFor(model => model.taxaIVAnormal)
</div>

<div class="editor-label">
    @Html.Label("Taxa IVA intermédio")
</div>
<div class="editor-field">
    @Html.EditorFor(model => model.taxaIVAintermedio)
</div>

//more code

这些字段都是小数,但它们显示的是","而不是".",所以我无法将其发回给控制器。

[HttpGet]
public ActionResult alteraTaxas()
{
    return View(TaxasRepository.getTaxas().SingleOrDefault());
}

[HttpPost]
public ActionResult alteraTaxas(Taxas tx)
{         
    TaxasRepository.AlteraTaxa(tx);
    return View();
}

有没有办法(在视图中)这样做,所以当我使用","做单独的十进制案例时,我没有得到验证“它不是一个数字”。 我试过这个:

@Html.EditorFor(model => (double)model.taxaIVAnormal)

但是id似乎不起作用。

2 个答案:

答案 0 :(得分:1)

我假设这是一个西班牙语网站,而model.taxaIVAnormal是字符串。让事情顺利进行的最简单方法是在web.config文件中设置全球化参数:

<globalization uiCulture="es" culture="es-MX" />

有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/hy4kkhe0(v=vs.71).aspx

答案 1 :(得分:0)

这与你似乎遇到的问题相同。可能想尝试一下,看看它是否适合你,因为它适用于其他用户。

Parse decimal in view model