我的项目中的视图模型存在一些问题,其中包含许多双打
IE。
public class MyViewModel
{
public double Left { get; set; }
public double Right { get; set; }
public double Top { get; set; }
public double Bottom { get; set; }
}
在我看来我有
@Html.EditorForModel
如果我的项目中没有其他自定义模板,则会正确呈现,并且我会得到一个带有双精度的文本框。
一旦我将字符串模板放入 View/Shared/EditorTemplate 并在其中放入任何内容,该模板中的任何内容都会被渲染,而不是双模板。
我会认为即使我已经覆盖了字符串模板,选择模板的顺序将保持不变,并且将选择双模板,因为它最初是在字符串模板存在之前。
字符串模板仅包含(没有 @model )
<h2>String</h2>
我在这里遗漏了什么,为什么在这里选择字符串模板?
我已经确定我可以在视图共享文件夹中放置一个双重模板,它会呈现它,但似乎我不应该这样做。
编辑:
根据达林的回答,我基于十进制模板创建了自己的双编辑器模板。
@using System.Globalization
@functions {
private object FormattedValue
{
get
{
if (ViewData.TemplateInfo.FormattedModelValue == ViewData.ModelMetadata.Model)
{
return String.Format(CultureInfo.CurrentCulture, "{0:0.00}", ViewData.ModelMetadata.Model);
}
return ViewData.TemplateInfo.FormattedModelValue;
}
}
}
@Html.TextBox("", FormattedValue, new {@class = "text-box single-line"})