微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在ASP.Net MVC 5.2.7.Net Framework中处理表格中的双数?

如何解决如何在ASP.Net MVC 5.2.7.Net Framework中处理表格中的双数?


我目前在使用asp-mvc生成的视图时,在处理形式上的双数时遇到问题。
让我展示我的模型Eleve,在这里我关注的领域是Moyenne(相对注释是我从先前研究中尝试的最后一个注释):
public class Eleve
{
    [Key]
    public int Id { get; set; }
    public string Nom { get; set; }
    [displayFormat(ApplyFormatInEditMode = false,DataFormatString = "{0:P0}")]
    [RegularExpression(@"[0-9]+(\.[0-9][0-9]?)?$",ErrorMessage = "Invalid rate")]
    public double Moyenne { get; set; }
}

控制器是由ASP MVC 5使用实体框架自动生成的。
视图的相关部分:

<div class="form-group">
        @Html.LabelFor(model => model.Moyenne,htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.Moyenne,new { htmlAttributes = new { @class = "form-control decimal-small inline" } })
            @Html.ValidationMessageFor(model => model.Moyenne,"",new { @class = "text-danger" })
        </div>
</div>

当我使用非整数输入提交表单时,我收到一条错误消息,告诉我(法语)值不正确: error message
在实践中,我将需要能够在分隔符后使用带有两位小数的数字。目前,仅接受整数。我发现的解决方案似乎已经过时,或者错过了一些东西。
感谢您的帮助!

解决方法

ModelState还针对某些CultureInfo参数进行了验证。由于使用法语 小数点分隔符为“,”,因此在breakPoint中看到0。

这是一个工作环境(使用自动生成的控制器):

想法是更改GET中的CultureInfo更改并在POST中恢复它。

public ActionResult Create()
{
    CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("en-US");
    return View();
}

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create( Eleve eleve)
{
    if (ModelState.IsValid)
    {
      db.Eleve.Add(eleve);
      db.SaveChanges();
      return RedirectToAction("Index");
    }
    
    CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("fr-FR");
    return View(eleve);
}

// 
[DisplayFormat(ApplyFormatInEditMode = true,DataFormatString = "{0:0.00}")]
,

您好Benoit essayes comaça

[DisplayFormat(DataFormatString = "{0:#,##0.00#}",ApplyFormatInEditMode = false)]
public double? Moyenne{ get; set; }

tu peux aussi essayer cette regex:

^-?\d(.\d+)?[^.]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?