c# - EditorTemplates - 在 Date.cshtml 和 DateTime.cshtml 之间共享实现

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

我有一个 DateTime 和 Date 的编辑器模板。 Date 的内容是 DateTime 的简单复制和粘贴。这是糟糕的复制粘贴编码。

对于用[DataType(DataType.Date)]修饰的属性,有没有好的方法来使用DateTime编辑器模板?从 Date 模板直接使用带有一些添加的 ViewData 信息的 DateTime 模板怎么样?

最佳答案

您的编辑器模板中有多少代码?

我通常做的是为所有编辑器模板创建一个共享布局,其中包含我的模板的大部分通用 HTML,然后您(通常)只剩下一行代码用于实际的特定类型 HTML。

例如,这是布局编辑器模板的简化版本:

_Layout.cshtml

<p>
    @Html.LabelFor(m => m):
</p>
<p>
    @RenderSection("value")
</p>
<p>
    @Html.ValidationMessageFor(m => m)
</p>

然后这里有几个特定于类型的模板:

String.cshtml

@model System.String
@{
    Layout = "~/Views/Shared/EditorTemplates/_Layout.cshtml";
}
@section value{
    @Html.TextBoxFor(m => m)
}

密码.cshtml

@model System.String
@{
    Layout = "~/Views/Shared/EditorTemplates/_Layout.cshtml";
}
@section value{
    @Html.PasswordFor(m => m)
}

关于c# - EditorTemplates - 在 Date.cshtml 和 DateTime.cshtml 之间共享实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19745565/

相关文章:

c# - 验证客户端下拉列表中选定月份和年份的选定日期

c# - 如何将表(DataTable)保存到数据库中的单个单元格中?

asp.net - 如何在 ASP.NET 中混合使用 WebForms 和 MVC

c# - MVC3 View : Handling null models with finesse

c# 嵌套类找不到类型或命名空间

c# - 尝试打开 telerik 报告时出现 "Value cannot be null. Parameter name: instance"错误

c# - 如何使用 LINQ 从数据库中选择多个项目

c# - 检查移动设备是否正在请求桌面站点

c# - JQuery + Asp.Net MVC,传递 float

asp.net-mvc - Url.Action 不输出 URL