2012-05-16 103 views
1

我想緊緊地綁定我的屬性使用html助手爲TextBoxFor但我不能這樣做,我只是綁定使用文本框,但我想獲取數據分配給文本框在httpPost如何將模型屬性綁定到HTML幫助器textboxfor mvc3

下面

是我如何使用簡單的HtmlHelper文本

<%: Html.TextBox("RenewalDate", (string.Format("{0:yyyy/MM/dd}", Model.RenewalDate)), new { id = "txtRenewalDate", maxlength = 20, tabindex = 3, @class = "date" })%> 

我不想使用這就是爲什麼我要與TextBoxFor裹緊的FormCollection以便在httpPost我的模型分配到的值完成Model.RenewalDate

請幫助....

+0

你有什麼問題使用TextBoxFor? –

+0

問題是,我想以格式顯示日期時間yyyy/MM/dd – aamankhaan

回答

2

使用編輯器模板,它更容易:

<%= Html.EditorFor(x => x.RenewalDate) %> 

,你可以用DisplayFormat屬性裝點您的視圖模型屬性來指定所需的格式:

[DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}", ApplyFormatInEditMode = true)] 
public DateTime RenewalDate { get; set; } 

然後您的POST控制器操作將視圖模型作爲操作參數。

[HttpPost] 
public ActionResult SomeAction(MyViewModel model) 
{ 
    ... 
} 

而且爲了應用HTML屬性,如類,tabindex屬性和最大長度你可以寫一個自定義的元數據提供如圖所示following article這個編輯器模板。

此外,由於日期使用的是yyyy/MM/dd,因爲默認模型聯編程序使用當前區域性設置,所以缺省模型聯編程序可能無法解析該值。要解決此問題,您可以編寫一個自定義模型綁定器,如this thread中所示。

+0

嗨它已經解決了我顯示日期格式的問題,但現在....我已經綁定了這個文本框的日期選擇器,但它現在不顯示.. .. – aamankhaan

+0

讓我簡單介紹一下,讓每個人都能理解 我已經使用上述方法來解決日期格式問題,但它的工作正常,但是我附加了一個日期選擇器,其中沒有在編輯器上顯示的日期選擇器。 ... <%:Html.EditorFor(m => m.RenewalDate,new {id =「txtRenewalDate」,maxlength = 20,tabindex = 3,@class =「date」})%> 下面是我編輯的代碼 – aamankhaan

相關問題