2012-01-12 36 views
1

我正在嘗試製作一個頁面,用戶可以在其中搜索文章。有一個選項可以根據FromDateToDate限制搜索。這兩個都是DateTime如何使Html.TextBoxFor DateTime接受用戶輸入dd.MM.yy

要求用戶在表格dd.MM.yy上輸入日期,因爲這在我們國家是正常的。提交表單後,我可以在URL中看到日期,並且看起來像我想要的那樣。但問題是MVC3的格式是MM.dd.yy。我該如何改變這一點?

一些代碼: 這是剃刀代碼中,我使用

<div class="toDate" > 
    <label>til dato</label> 
    @Html.TextBoxFor(m => m.DateTo, new { placeholder = "dd.mm.yy" }) 
</div> 

和模型中所有我擁有的是:

public DateTime DateTo { set; get; } 

我一直在使用EditorFor試過,但我失去了我的佔位符文本。

簡而言之:如何讓我的MVC3模型接受的形式DD.MM.YY

用戶一個DateTime輸入。如果我的問題不夠清楚,讓我知道,我我會盡力澄清。

編輯: 看來,我需要一些澄清,所以我會嘗試通過使一個場景要做到這一點:

  1. 用戶輸入自己的搜索條件。他在兩個文本框中設置了DateFrom和DateTo。
  2. 表單被提交併發佈回服務器。
  3. 在服務器上,DateTime對象在表單MM.dd.yy上處理。我希望它被解釋爲dd.MM.yy.

我希望有所幫助。

回答

2
[DisplayFormat(DataFormatString = "{0:dd MM yy}")] 
pubilc DateTime DateTo { get; set } 
+0

Vill這真的驗證輸入按照特定的格式? – 2012-01-12 09:52:52

+0

你真的會工作,你只需要在模型類中添加這行 – user1006544 2012-01-12 09:54:53

+0

我不能使這項工作。看起來好像這是如果我設置TextBox的值使用?我想要做的是接受用戶的輸入並在搜索中使用它 - 我希望我的模型接受表單dd.Mm.yy上的輸入。 (我也嘗試過{0:dd.MM.yy}的示例) – AndersDaniel 2012-01-12 10:05:50

1

嘗試設置自定義驗證屬性,您可以根據自己的喜好驗證日期格式。

下面是一個很好的教程:http://msdn.microsoft.com/en-us/gg618485(它不像起初看起來那麼困難,而且可能真的很有用)。

或者只是建立一個正則表達式驗證屬性的東西,如:

RegularExpression(@"[0-3][0-9]\.[0-1][0-9].[0-9][0-9]")] 

上述正則表達式是不完美的,但作爲一個例子。

編輯:如果3nigma的解決方案適合你,顯然是高度優於我的。 :)

+0

感謝您的建議。我沒有試圖驗證用戶的輸入。我試圖讓我的模型接受它的形式dd.MM.yy.即使在該表單上的正確輸入也被視爲MM.dd.yy. – AndersDaniel 2012-01-12 10:08:13

+1

我想我在理解這裏的問題時有一個問題 - 即使在閱讀您對其他答案的評論之後。你可以嘗試在原始文章中詳細說明一些例子嗎? – 2012-01-12 10:13:45

+0

我在原文中加了一些說明。希望有所幫助。 – AndersDaniel 2012-01-12 13:04:31