mvc3中的日期选择器与剃刀视图引擎

时间:2012-04-03 09:13:54

标签: asp.net-mvc asp.net-mvc-3 razor

我正在使用mvc3而razor是我的视图引擎我如何在我的日语中使用脚本获取日期选择器 图。

6 个答案:

答案 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