在ASP.NET MVC 3中没有调用"Floats"的EditorTemplate

Bil*_*ill 1 asp.net-mvc-3

我的ViewModel中有一个类型为"float"的属性.它显示为TextBox,默认值为"0".

我在"Shared"文件夹中添加了一个"EditorTemplates"文件夹,并创建了一个新的"Float.cshtml"文件,其中包含以下内容:

@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue == 0 ? "" : ViewData.TemplateInfo.FormattedModelValue, new { @class = "text-box single-line" })
Run Code Online (Sandbox Code Playgroud)

但是,当我运行应用程序时,浮动字段仍然显示为默认值0.

谢谢

更新 我只是想看看ASP.NET如何对自定义模板做出反应,到目前为止,引擎还没有处理我的自定义模板,类似于:

LatLng.cshtml

@model float
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new { @class = "text-box single-line "}) Latitude
Run Code Online (Sandbox Code Playgroud)

在ViewModel上,

    [UIHint("LatLng")]
    public float? Latitude { get; set; }
Run Code Online (Sandbox Code Playgroud)

在视图上,

@Html.EditorFor(model => model.Latitude)
Run Code Online (Sandbox Code Playgroud)

没有任何变化,正在使用默认模板.

Eri*_*sch 5

Float实际上不是.NET类型,它是C#类型.Float映射到System.Single,因此您需要创建Single.cshtml而不是Float.cshtml.

您还可以通过在模型数据上指定UIHint属性,或指定要在Editor或EditorFor方法中使用的模板来解决此问题.