我正在使用mvc3而razor是我的视图引擎我如何在我的日语中使用脚本获取日期选择器 图。
答案 0 :(得分:7)
您可以在项目的目录脚本中创建脚本。
基本示例:
$(document).ready(function () { $("#datepicker").datepicker({ });});
在您看来:
@model YourProjectName.Models.User
...
<div class="editor-field">
@Html.TextBoxFor(model => model.Dateadd, new { @Value = DateTime.Now, id = "datepicker" })
@Html.ValidationMessageFor(model => model.Dateadd)
</div>
答案 1 :(得分:4)
我认为您将不得不使用脚本,请查看jqueryui datepicker。它是一个易于使用的好库,支持主题
答案 2 :(得分:3)
我在这里回答,请查看:http://forums.asp.net/post/4647234.aspx
基本上,您在一个位置使用带有脚本的模板,并使用EditorFor调用它。
答案 3 :(得分:1)
对于这里的顾问:在部分视图(模板)中使用脚本是一种不好的做法。
就我而言,根本不起作用。因为访问jquery在它包含为js文件之前发生。 另外,你无法预测这个datepicker控件的确切位置。 此外,您将为页面上的每个编辑器提供此“就绪”块。
RenderSection会为所有这些带来一些顺序,但它不适用于偏见和模板。
所以只需将javascript代码从模板(partialview)移动到视图。
答案 4 :(得分:0)
@model Nullable<System.DateTime>
@if ( Model.HasValue ) {
@Html.TextBox( "" , String.Format( "{0:yyyy-MM-dd HH:mm}" , Model.Value ) , new {
@class = "textbox" , @style = "width:400px;" } )
}
else {
@Html.TextBox( "" , String.Format( "{0:yyyy-MM-dd HH:mm}" , DateTime.Now ) , new {
@class = "textbox" , @style = "width:400px;" } )
}
@{
string name = ViewData.TemplateInfo.HtmlFieldPrefix;
string id = name.Replace( ".", "_" );
}
<script type="text/javascript">
$(document).ready(function () {
$("#@id").datepicker
({
dateFormat: 'dd/mm/yy',
showStatus: true,
showWeeks: true,
highlightWeek: true,
numberOfMonths: 1,
showAnim: "scale",
showOptions: {
origin: ["top", "left"]
}
});
});
</script>
答案 5 :(得分:0)
如果您使用编辑器模板作为DateTime类型,则可以使用HTML5日期选择器(即<input type="date" />
)。基本上,您将名为DateTime.cshtml的视图放在名为Views / Shared / EditorTemplates的文件夹中,然后您可以根据需要设置编辑器的样式。一个例子是答案here。