我的视图模型中有一个 double 数组,我想应用如下所示的数据格式字符串:
class MyVM
{
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:F2}")]
public double Currents[] { get; set; }
}
在我的视图中,我在数组上使用 EditorFor,如下所示,除了不应用数据格式字符串外,它工作正常。
@Html.EditorFor(model => model.Currents)
我了解到我可以使用自定义模板,但想知道是否有比创建自定义模板更简单的方法。如果自定义模板是唯一的解决方案,那么应该处理格式的最简单的自定义模板是什么?我尝试创建一个,但未能成功正确应用数据格式字符串。
我可以使用以下内容在 ~Views\Shared 文件夹中创建 CurrentsTemplate.cshtml
@model double[]
@foreach (double x in Model) {
<div class="editor-field">
@Html.TextBoxFor(m=>x, "{0:F2}")
</div>
}
并通过调用@Html.EditorFor(m => m.Currents,"CurrentsTemplate") 来使用它,它会工作,但表单数据在其发布后不会持续存在。我猜我需要 for 循环中的隐藏字段以及 TextBox。