34

下面的两行代码工作正常,但我想将它们结合起来。我的意思是:我想在第一行代码中使用@class。我怎样才能做到这一点?

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

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

谢谢,

菲利普

4

3 回答 3

72

我知道我来晚了,但我刚刚找到了解决这个问题的方法:

<%: Html.TextBoxFor(model => model.StartDate, new { @class = "datepicker", Value=String.Format("{0:d}", Model.StartDate) })%>
于 2011-04-12T22:58:10.457 回答
0

同样,它可能会迟到,但我相信更好的解决方案是使用jquery.maskedinput插件(也可作为 nuget 包提供)。

为什么使用插件比使用输入格式更好?好吧,当有人修改输入时,如果您不使用插件,您将失去格式。

在这里你可以找到它的用法和演示。

于 2012-08-23T11:22:40.923 回答
0

恐怕没有干净的方法可以实现这一目标。有几种可能性:

  1. 为 Product 属性使用编辑器模板:

    <%: 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
    }
    
于 2011-01-23T09:09:55.843 回答