Asp.net mvc 如何使Html.textboxfordatetime接受用户输入的dd.MM.yy
我正在尝试创建一个用户可以搜索文章的页面。有一个选项可以根据Asp.net mvc 如何使Html.textboxfordatetime接受用户输入的dd.MM.yy,asp.net-mvc,asp.net-mvc-3,razor,Asp.net Mvc,Asp.net Mvc 3,Razor,我正在尝试创建一个用户可以搜索文章的页面。有一个选项可以根据FromDate和ToDate限制搜索。这两个都是DateTime 要求用户在表格dd.MM.yy上输入日期,因为这在我国是正常的。提交表单后,我可以在URL中看到日期,它看起来就像我想要的那样。然而,问题是MVC3假定格式为MM.dd.yy。我怎样才能改变这个 一些代码: 这是我使用的Razor代码 <div class="toDate" > <label>til dato</label>
FromDate
和ToDate
限制搜索。这两个都是DateTime
要求用户在表格dd.MM.yy
上输入日期,因为这在我国是正常的。提交表单后,我可以在URL中看到日期,它看起来就像我想要的那样。然而,问题是MVC3假定格式为MM.dd.yy
。我怎样才能改变这个
一些代码:
这是我使用的Razor代码
<div class="toDate" >
<label>til dato</label>
@Html.TextBoxFor(m => m.DateTo, new { placeholder = "dd.mm.yy" })
</div>
我已尝试使用EditorFor,但我丢失了占位符文本
简而言之:如何让我的MVC3模型接受用户在dd.MM.yy表单上的日期时间输入
如果我的问题不够清楚,请告诉我,我会尽力澄清
编辑:
看来我需要一些澄清,所以我将尝试通过制作一个场景来做到这一点:
我希望这会有所帮助。尝试设置一个自定义验证属性,根据自己的喜好验证日期格式
[DisplayFormat(DataFormatString = "{0:dd MM yy}")]
pubilc DateTime DateTo { get; set }
这里有一个很好的教程:(它并不像一开始看起来那么困难,而且非常有用)
或者,只需使用以下内容构建正则表达式验证属性:
RegularExpression(@"[0-3][0-9]\.[0-1][0-9].[0-9][0-9]")]
上面的正则表达式并不完美,但可以作为一个例子
编辑:如果3nigma的解决方案对您有效,则显然比我的更可取。:) 这真的可以根据特定的格式验证输入吗?是的,它真的可以工作,你只需要在模型classI中添加这行代码,我不能这样做。如果我设置文本框的值,似乎会使用此选项?我试图做的是获取用户的输入,并在搜索中使用它——我希望我的模型接受表单dd.Mm.yy上的输入。(我也用{0:dd.MM.yy}试过你的例子)谢谢你的建议。我不想验证用户的输入。我正试着让我的模特在dd.MM.yy表格上接受它。即使表格上输入的正确信息也会被视为MM.dd.yy。我想我在理解这个问题时遇到了问题——即使在阅读了你对另一个答案的评论之后。你能试着在你原来的帖子中用更多的例子来阐述吗?我在我原来的帖子中添加了一些澄清。希望有帮助。
RegularExpression(@"[0-3][0-9]\.[0-1][0-9].[0-9][0-9]")]