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

时间:2017-06-29 19:41:28

标签: c# asp.net razor mvc-editor-templates

修改

我刚刚注意到,当我尝试存储nameof(Model)的值时,它以“Model”形式出现,但是当我生成TextBox时,name字段以此模板的DateVerified.Model形式出现。我很困惑为什么会这样。

Model Name

我正在尝试获取没有的属性的名称。之后的扩展,以便为我的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。如何获取这些属性的名称但没有扩展名?

1 个答案:

答案 0 :(得分:0)

没关系。我傻了。我改变了这一行,

@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" })

我的日期属性的名称来自我希望他们寻找我的模型绑定的方式。