2011-01-22 31 views
26

下面的兩行代碼工作正常,但我想合併它們。 我的意思是:我想在第一個代碼行中使用@class。 我該怎麼做?Html.TextBoxFor格式和css類

<%: Html.TextBoxFor(model => model.Product.Price, String.Format("{0:f}", Model.Product.Price))%> 

<%: Html.TextBoxFor(model => model.Product.Name, new { @class = "textBox150" })%> 

感謝,

菲利普

回答

0

恐怕就沒有乾淨的方式來實現這一目標。有幾個可能的原因:

  1. 使用編輯模板的產品屬性:

    <%: Html.EditorFor(x => x.Product) %> 
    

    和這個編輯器模板中:

    <%: Html.TextBox("Price", string.Format("{0:f}", Model.Product.Price), new { @class = "textBox150" }) %> 
    <%: Html.TextBoxFor(model => model.Product.Name, new { @class = "textBox150" })%>   
    
  2. 編寫自定義助手即會追加類

  3. 將這些文本框包裹在span

    <span class="container150"> 
        <%: Html.TextBoxFor(model => model.Product.Price, String.Format("{0:f}", Model.Product.Price))%> 
        <%: Html.TextBoxFor(model => model.Product.Name)%> 
    </span> 
    

    ,然後修改你的CSS規則:

    .container150 input { 
        // some rule that applies to the textbox 
    } 
    
61

我知道我遲到的方式在這裏,但我只是找到了解決這個問題:

<%: Html.TextBoxFor(model => model.StartDate, new { @class = "datepicker", Value=String.Format("{0:d}", Model.StartDate) })%> 
+0

我花了我一直找到這個答案。謝謝! – 2012-12-11 01:23:23

0

同樣,它可能會遲到,但我相信更好的解決方案是使用jquery.maskedinput插件(也可作爲nuget packa GE)。

爲什麼使用插件而不僅僅是輸入格式更好?那麼,當有人修改輸入時,如果你不使用插件,你將失去格式化。

Here你可以找到它的工作原理和演示。