[英]adding a class to EditorFor - razor c#
(编辑器用于名为“ADate”的DateTime属性
我正在尝试这个,但它不起作用。
@Html.EditorFor(model => model.ADate, new { cssClass = "date" } )
所以我尝试了这个:
@Html.TextBoxFor(model => model.ADate, new { @class = "date" })
但它输出type = text .. ofcourse它确实。
所以我尝试了一个模板......我在共享中添加了一个文件夹:
Shared/EditorTemplates
然后我创建了一个名为Date.cshtml的.cshtml局部视图
现在我在里面放什么:哦......
我试图了解很多帖子和堆栈溢出条目,但它并没有陷入其中。
目标是在整个应用程序中使用“。日期”类附加一个日期选择器 “.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(x => x.ADate, "MyOtherAwesomeTemplate")
EditorFor html帮助器不会为DateTime属性呈现日期选择器(如果这是您想要做的)。 DateTime的默认EditorFor是文本输入。 如果要使用日期选择器,则必须使用jQuery DatePicker(或任何其他第三方日期选择器)。
此外,EditorFor助手没有html属性的参数。 如果要分配类,则必须使用TextBoxFor。
在主视图中,使用EditorFor,如下所示:
@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" })
您可以从此处下载jQuery UI : 下载jQuery UI
并且,您可以在此处了解有关jQuery DatePicker的更多信息: jQuery DatePicker
你可以这样做
@Html.EditorFor(model => model.ADate)
<style type="text/css">
#ADate
{
@* your css properties goes here *@
}
</style>
这适用于MVC3 Razor
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.