Bootstrap 带有 asp .net 脚手架的日期时间选择器
Bootstrap datetimepicker with asp .net scaffolding
我有简单的模型 class 和 DateTime 属性。
[Required]
[DataType(DataType.DateTime)]
public DateTime When { get; set; }
目前Visual Studio脚手架生成这个:
<div class="form-group">
@Html.LabelFor(model => model.When, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.When, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.When, "", new { @class = "text-danger" })
</div>
</div>
这是一个简单的文本框。我想覆盖默认脚手架。我可以向默认模板添加一些内容,然后生成我的更改。
如何配置 Create.cs.t4 文件来生成 bootstrap datetimepicker?
有一个 if 条件来检查这是一个枚举
else if (property.IsEnum && !property.IsEnumFlags)
或bool类型
bool isCheckbox = property.TypeName.Equals(boolType);
我的解决方案是添加 if 语句来检查它是否是日期时间并生成我自己的输入字段。我检查了网络,但这不是一个常见的话题。
如果你想改变脚手架,你需要这样做:
bool isDateTime = property.TypeName.Equals("System.DateTime");
为了检查 属性 的数据类型,您需要检查 TypeName。 TypeName 采用数据类型的字符串值,您需要包含名称 space。例如System.Int32
、System.DateTime
、System.Bool
您可以编写 html 标签或创建您自己的 html 助手,然后执行如下操作:
<# if (isDateTime) {#>
@Html.CutomeDateHelperFor(modelItem => <#= "item." + GetValueExpression(property) #>)
<# } #>
除了脚手架,另一个更简单的解决方案是使用编辑器模板。您将为 DateTime
类型创建编辑器模板,所有 editorfor 标签将被转换为您的自定义 html 标签,其中包括 Booststap 日期和时间选择器或任何其他类似 jquery ui 日历.
以这个为例:
https://www.simple-talk.com/dotnet/asp.net/extending-editor-templates-for-asp.net-mvc/
我有简单的模型 class 和 DateTime 属性。
[Required]
[DataType(DataType.DateTime)]
public DateTime When { get; set; }
目前Visual Studio脚手架生成这个:
<div class="form-group">
@Html.LabelFor(model => model.When, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.When, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.When, "", new { @class = "text-danger" })
</div>
</div>
这是一个简单的文本框。我想覆盖默认脚手架。我可以向默认模板添加一些内容,然后生成我的更改。
如何配置 Create.cs.t4 文件来生成 bootstrap datetimepicker?
有一个 if 条件来检查这是一个枚举
else if (property.IsEnum && !property.IsEnumFlags)
或bool类型
bool isCheckbox = property.TypeName.Equals(boolType);
我的解决方案是添加 if 语句来检查它是否是日期时间并生成我自己的输入字段。我检查了网络,但这不是一个常见的话题。
如果你想改变脚手架,你需要这样做:
bool isDateTime = property.TypeName.Equals("System.DateTime");
为了检查 属性 的数据类型,您需要检查 TypeName。 TypeName 采用数据类型的字符串值,您需要包含名称 space。例如System.Int32
、System.DateTime
、System.Bool
您可以编写 html 标签或创建您自己的 html 助手,然后执行如下操作:
<# if (isDateTime) {#>
@Html.CutomeDateHelperFor(modelItem => <#= "item." + GetValueExpression(property) #>)
<# } #>
除了脚手架,另一个更简单的解决方案是使用编辑器模板。您将为 DateTime
类型创建编辑器模板,所有 editorfor 标签将被转换为您的自定义 html 标签,其中包括 Booststap 日期和时间选择器或任何其他类似 jquery ui 日历.
以这个为例: https://www.simple-talk.com/dotnet/asp.net/extending-editor-templates-for-asp.net-mvc/