[编辑:现在工作。刚刚将EditorFor改为TextBox]
我刚开始使用C#中的MVC3。我偶然发现了这个问题。
我已经关注了一些有关向MVC3项目添加datepicker功能的教程,但是我的web项目中没有显示datepicker。这就是我所拥有的:
在我的_Layout.chtml文件中,我已经包含了所需的jQuery依赖项文件:
<link href="@Url.Content("~/Content/themes/base/jquery.ui.core.css")"
rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/themes/base/jquery.ui.datepicker.css")"
rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/themes/base/jquery.ui.theme.css")"
rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery.ui.core.min.js")"
type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.ui.datepicker.min.js")"
type="text/javascript"></script>
这就是我在视图中的内容:
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Student</legend>
<div class="editor-label">
@Html.LabelFor(model => model.FullName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.FullName)
@Html.ValidationMessageFor(model => model.FullName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.DOB)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.DOB, new { @class = "date" })
@Html.ValidationMessageFor(model => model.DOB)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
并在View中的同一个文件中,我把脚本挂钩到顶部的编辑器中的日期选择器:
<script type="text/javascript">
$(document).ready(function () {
$('.date').datepicker();
});
许多教程建议使用EditorTemplate,但我认为没有必要。我错过了什么?感谢所有帮助人员。
答案 0 :(得分:0)
我不相信你可以使用EditorFor并传入一个类。相反,尝试:
<div class="editor-field">
@Html.TextBoxFor(model => model.DOB, new { @class = "date" })
@Html.ValidationMessageFor(model => model.DOB)
</div>
TextBoxFor将接受HTML属性。
答案 1 :(得分:0)
这是一个简单的工作演示,阅读this
<!DOCTYPE html>
<html>
<head>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script>
$(document).ready(function() {
$("#datepicker").datepicker();
});
</script>
</head>
<body style="font-size:62.5%;">
<div id="datepicker"></div>
</body>
</html>
答案 2 :(得分:0)
@ Html.TextBoxFor()第二个参数是对象htmlAttributes
@ Html.EditorFor()第二个参数是对象additionalViewData
所以新{@class =“date”} 对@ Html.TextBoxFor()没有所需的效果