C# 获取具有模型扩展名的 属性 的名称

C# Get nameof a property with the model extension


编辑

我刚刚注意到,当我尝试存储 nameof(Model) 的值时,它以 "Model" 的形式出现,但是当我生成 TextBox 时,名称字段以 DateVerified.Model 形式出现在这个模板中.我非常困惑为什么会这样。


我正在尝试获取 属性 的名称而不带 .在它之后扩展以便为我的 Asp.Net 编辑器模板做一些动态绑定,但似乎无法让它工作。

这是我的模板视图,

@model DateTime?

@Html.LabelFor(m => m)
<div class="input-group datepicker form-group">
    <span class="input-group-addon">
        <i class="fa fa-calendar"></i>
    </span>
    @Html.TextBox(nameof(Model), Model.HasValue ? 
Model.Value.ToShortDateString() : "", "{0:MM/dd/yyyy}", new { @class = "form-control" })
</div>

如您所见,我在此模板中输入了不同的日期属性,有些可以为 null,这就是为什么我要检查值而不是仅使用 @Html.TextBoxFor 助手。这很好用,除了 属性 的名称以

之类的实例出现
DateVerified.Model
DateCreated.Model

这不适用于我在回发时绑定的模型,因为我的属性只是命名为 DateVerified 或 DateCreated。如何获得这些属性的名称但没有扩展名?

没关系。我是愚蠢的。我改变了这一行,

@Html.TextBox(nameof(Model), Model.HasValue ? Model.Value.ToShortDateString() : "", "{0:MM/dd/yyyy}", new { @class = "form-control" })

为此,

@Html.TextBox("", Model.HasValue ? Model.Value.ToShortDateString() : "", "{0:MM/dd/yyyy}", new { @class = "form-control" })

我的日期属性的名称以我希望他们查找我的模型绑定的方式出现。