34

以下の 2 行のコードは問題なく動作しますが、それらを結合したいと考えています。つまり、最初のコード行で @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 に答える