我正在使用ASP.NET MVC 3.
我的ViewModel看起来像这样:
public class Foo
{
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}", ApplyFormatInEditMode = true)]
public DateTime StartDate { get; set; }
...
}
Run Code Online (Sandbox Code Playgroud)
在视图中,我有这样的事情:
<div class="editor-field">
@Html.EditorFor(model => model.StartDate)
<br />
@Html.ValidationMessageFor(model => model.StartDate)
</div>
Run Code Online (Sandbox Code Playgroud)
StartDate以正确的格式显示,但当我将其值更改为19.11.2011并提交表单时,我收到以下错误消息:"值'19 .11.2011'对StartDate无效."
任何帮助将不胜感激!
我遇到了一个问题,我遇到了日期时间字段的客户端验证问题.当我尝试提交时,它一直告诉我日期无效(2013年7月27日).但是,如果我将日期转换为美国格式(2013年7月27日).
我的观点模型如下,
[DataType(DataType.Date), DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime? AuditDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
的index.html
@Html.TextBoxFor(m => m.AuditDate)
Run Code Online (Sandbox Code Playgroud)
我已经更新了我的web.config
<globalization culture="en-AU" uiCulture="en-AU" />
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
谢谢
我正在尝试处理日期值的用户输入,我想提示用户以这种格式输入日期:dd/MM/yyyy
我试图做的:
我在这个问题中阅读并实现了Darin的答案: 在asp.net mvc 4中格式化日期时间
这是我的实施:
在Global.asax中
(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var displayFormat = bindingContext.ModelMetadata.DisplayFormatString;
var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
if (!string.IsNullOrEmpty(displayFormat) && value != null)
{
DateTime date;
displayFormat = displayFormat.Replace
("{0:", string.Empty).Replace("}", string.Empty);
if (DateTime.TryParse(value.AttemptedValue, CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
{
return date;
}
else
{
bindingContext.ModelState.AddModelError(
bindingContext.ModelName,
string.Format("{0} is an invalid date format", value.AttemptedValue)
);
}
}
return base.BindModel(controllerContext, bindingContext);
}
Run Code Online (Sandbox Code Playgroud)
模型中的出发日期:
[Required(ErrorMessage = "Departure date is required")]
[Display(Name = "Departure Date")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode …
Run Code Online (Sandbox Code Playgroud) 使用MVC4启用客户端和不显眼验证,我试图了解验证如何确定输入的DateTime值是否有效.
在我的应用程序中,此格式化日期有效:01/31/2013
,如果我输入:31/01/2013
,我得到:
字段[fieldId]必须是日期
它如何确定什么是有效日期?
asp.net-mvc jquery-validate unobtrusive-validation asp.net-mvc-3 asp.net-mvc-4
我正在开发一个asp.net mvc 5应用程序,我正在尝试为dd/MM/yyyy格式设置验证,我一直在努力寻找合适的解决方案,但没有成功,我想要它接受:
24/01/2016
但它显示验证消息:
字段JoiningDate必须是日期.
这是我尝试过的:
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime JoiningDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
此外,我希望它在用户端的任何地方以dd/MM/yyyy格式显示日期,但这是我的问题的第二部分,首先,它至少应该允许有效的日期输入.我坚持这个,任何帮助都会深深感激,我已经搜遍了所有,但我无法达到目的,在此先感谢:)
我想在我的asp.net mvc web应用程序上测试数据纠察队.
1.所以我创建了以下测试模型: -
public class TestClass
{
[DataType(DataType.Date)]
public DateTime D { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
2.我添加了以下脚本: -
$(function () {
$(".datefield").datepicker();
});
Run Code Online (Sandbox Code Playgroud)
3.根据我的观点,我有以下内容: -
@model MvcApplication6.Models.TestClass
@Html.EditorFor(item=>item.D)
Run Code Online (Sandbox Code Playgroud)
现在压延机会显示好,但我有这两个问题: -
1.如果在action方法中,我将数据时间指定为今天的日期,如下所示: -
public ActionResult Index()
{
TestClass t = new TestClass();
t.D = DateTime.Now.Date;
return View(t);
}
Run Code Online (Sandbox Code Playgroud)
然后日历将切换日期和月份,因此6月12日成为12月6日如下: -
2.如果我将dataitme删除为等于今天的日期,我将获得以下默认值: -
01/01/0001
Run Code Online (Sandbox Code Playgroud)
3.如果我指定datetime以允许null,并且我没有指定任何defualt值,我将得到以下异常
[DataType(DataType.Date)]
public DateTime? D { get; set; }
Run Code Online (Sandbox Code Playgroud)
传递到字典中的模型项为null,但此字典需要"System.DateTime"类型的非null模型项.
那么有人可以就导致这三个问题的原因提出建议吗?谢谢
编辑 确定我将我的属性更改为String而不是日期时间,如下所示: -
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public string CreateDate { get; …
Run Code Online (Sandbox Code Playgroud)