我正在做一个简单的MVC4互联网应用程序,它允许在类别中添加一些项目.
这是我到目前为止所做的.
我在mvc视图中有一个日期选择器.datepicker的脚本是这样的.
<script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.20.min.js")" type="text/javascript"></script>
@Scripts.Render("~/bundles/jqueryval")
<script type="text/javascript">
$(function () {
$('#dtItemDueDate').datepicker({
dateFormat: 'dd/mm/yy',
minDate: 0
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
我的模特财产:
[DisplayName("Item DueDate")]
[Required]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}",ApplyFormatInEditMode = true)]
[DataType(DataType.DateTime)]
public DateTime? dtItemDueDate { get; set; }
public char charCompleted { get; set; }
Run Code Online (Sandbox Code Playgroud)
在我看来,我做到了这一点:
@Html.TextBoxFor(m => m.dtItemDueDate)
@Html.ValidationMessageFor(m => m.dtItemDueDate)
Run Code Online (Sandbox Code Playgroud)
错误是这样的:
The field Item DueDate must be a date.
Run Code Online (Sandbox Code Playgroud)
奇怪的是,它确实在IE和Mozilla中工作,但在Chrome中不起作用.
我在SO上发现了很多帖子,但没有一个有用
有什么想法/建议吗?
我有奇怪的问题.我的日期验证在Chrome中不起作用.我试过这个答案,但它对我不起作用.
我的模型中有这个:
[Display(Name = "Date")]
[DataType(DataType.Date)]
public DateTime Date { get; set; }
Run Code Online (Sandbox Code Playgroud)
我的看法:
<div class="editor-field">
@Html.TextBoxFor(model => model.Item.Date, new { @class = "picker" })
@Html.ValidationMessageFor(model => model.Item.Date)
</div>
$(document).ready(function () {
$('.picker').datepicker({
dateFormat: 'dd.mm.yy',
changeMonth: true,
changeYear: true,
selectOtherMonths: true
});
});
Run Code Online (Sandbox Code Playgroud)
一切都适用于Opera和Firefox,但Chrome不喜欢这种类型的日期.我经常收到以下错误The field 'Date' must be a date.
有任何想法吗?
UPDATE
当代码在局部视图中时,似乎存在问题.当我将该代码复制到主页时,验证工作正常.
我正在我的主视图中插入局部视图,就像这样:
@Html.Partial("_CreateOrEdit", Model)
Run Code Online (Sandbox Code Playgroud)
上面的代码在局部视图中:
@model Pro.Web.Models.Model
<div class="editor-field">
@Html.TextBoxFor(model => model.Item.Date, new { @class = "picker" })
@Html.ValidationMessageFor(model => model.Item.Date)
Run Code Online (Sandbox Code Playgroud)
$(document).ready(function () { …Run Code Online (Sandbox Code Playgroud) 我在我的视图模型上使用jquery datepicker
这是我的观点:
@Html.TextBoxFor(o => o.JobStartDate, new { id = "dt1", @class = "input-block-level" })
@Html.ValidationMessage("JobStartDate")
Run Code Online (Sandbox Code Playgroud)
和我的脚本:
$("#dt1").datepicker({ dateFormat: "dd/mm/yy" });
Run Code Online (Sandbox Code Playgroud)
如果我的日期<= 12,一切正常,如果我的日期超过12,它将显示验证错误消息,说"字段开始日期必须是日期".(我正在使用jquery验证)
例如:日期2014年12月16日将给出错误,而12/12/2014将不会
这是我的视图模型:
[Required]
[DataType(DataType.Date)]
[Display(Name = "Start Date")]
public DateTime JobStartDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
我怀疑我的视图模型预期格式为mm/dd/yyyy的日期,而在我的datepicker上我指定了dd/mm/yy,有没有办法告诉我的viewmodel我期待dd/mm/yy格式如此如果日期> = 12,它不会抛出错误消息.