C# 向EditorFor-razor c添加类#
(编辑器用于名为“ADate”的DateTime属性) 我正在尝试,但它不起作用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
@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/
中?你可以展示一下你是如何使用它的吗(以及你是如何定义的)?我试着在这里用我能想到的每一个场景来测试它,但我无法复制它。