C# 向EditorFor-razor c添加类#

C# 向EditorFor-razor c添加类#,c#,asp.net-mvc,razor,editorfor,C#,Asp.net Mvc,Razor,Editorfor,(编辑器用于名为“ADate”的DateTime属性) 我正在尝试,但它不起作用 @Html.EditorFor(model => model.ADate, new { cssClass = "date" } ) 所以我试了一下: @Html.TextBoxFor(model => model.ADate, new { @class = "date" }) 但它输出type=text..当然输出了 所以我尝试了一个模板…我在共享中添加了一个文件夹: Shared/EditorTe

(编辑器用于名为“ADate”的DateTime属性)

我正在尝试,但它不起作用

@Html.EditorFor(model => model.ADate, new { cssClass = "date" } )
所以我试了一下:

@Html.TextBoxFor(model => model.ADate, new { @class = "date" })
但它输出type=text..当然输出了

所以我尝试了一个模板…我在共享中添加了一个文件夹:

Shared/EditorTemplates
然后我创建了一个名为Date.cshtml的.cshtml局部视图

现在我到底在里面放了什么:啊

我试着去理解很多帖子和堆栈溢出条目,但并没有完全理解


我们的目标是在使用“.date”类的整个应用程序中将日期选择器附加到类“.date”。.date”
类…TextBoxFor与我的添加类部分一起工作…但正如我所说,类型从日期更改为文本:(

好的,这就是您可以做的:

EditorTemplates
文件夹中创建一个名为
DateTime.cshml
的模板(如果将其用于日期,则名称将自动解析,否则在使用时必须指定)。 然后在其中:

@model System.DateTime

@Html.TextBox(
   string.Empty, 
   Model.ToString("yyyy-MM-dd"),
   new { @class="datepicker", @type = "date"})
使用最后一个参数可以指定任何html属性(类、数据、类型等)

然后你就这样使用它:

@Html.EditorFor(x => x.ADate)
@Html.EditorFor(model => model.ADate)
如果您选择使用其他名称命名模板,则可以通过调用另一个重载来指定它:

@Html.EditorFor(x => x.ADate, "MyOtherAwesomeTemplate")

EditorFor html帮助程序不会为您的DateTime属性呈现日期选择器(如果您希望这样做)。DateTime的默认EditorFor是文本输入。如果您要使用日期选择器,则必须使用jQuery DatePicker(或任何其他第三方日期选择器)

此外,EditorFor助手没有html属性的参数。如果要分配类,则必须使用TextBoxFor

在主视图中,使用以下编辑器:

@Html.EditorFor(x => x.ADate)
@Html.EditorFor(model => model.ADate)
然后,在编辑器模板(Date.cshtml)中,您将拥有:

@model System.DateTime

<script type="text/javascript">
    $(function () {
        $(".date").datepicker();
    });
</script>

@Html.TextBox("", Model.ToString("d"), new { @class = "date" })
@model System.DateTime
$(函数(){
$(“.date”).datepicker();
});
@Html.TextBox(“”,Model.ToString(“d”),新的{@class=“date”})
您可以从以下位置下载jQuery UI:

而且,您可以在这里了解有关jQuery日期选择器的更多信息:

您可以这样做

@Html.EditorFor(model => model.ADate)

<style type="text/css">

#ADate
{
 @* your css properties goes here *@
}
</style>
@Html.EditorFor(model=>model.ADate)
#阿达特
{
@*你的css属性在这里*@
}

这对MVC3 Razor很好

你读过吗:?@FilipEkberg-我需要更多的帮助,伙计..完全不明白:)由于某种原因,当名称为“DateTime.cshtml”时,模板没有被调用相反,我必须用重载字符串显式地调用它?有什么想法吗?我的属性是definetly DateTimetype@JamesT嘿,James,我不确定问题出在哪里。你确定没有多个模板吗?另外,你的模板是否位于
视图/Shared/EditorTemplates/
中?你可以展示一下你是如何使用它的吗(以及你是如何定义的)?我试着在这里用我能想到的每一个场景来测试它,但我无法复制它。